БлогVkontakte CrossPoster 2. Воскрешение.

Сегодня произошла очередное возвращение кросспостинга во VK. Инициатива по допиливанию модуля была поднята разработчиком по имени Дмитрий, за что ему большое человеческое спасибо. Однако давайте обо всём по порядку.
Разработчики Вконтакта так и не дали возможность публиковать веб-сайтам сообщения на стену. Но теперь мы будем маскироваться под Desktop приложение, чтобы всё работало как хочется. Из-за этого при получении токена из вконтакте нам придётся столкнуться с одним маленьким костылём. Однако, согласитесь - это намного лучше, чем неработающий кросспостинг :)
Теперь пошагово о процессе установки модуля.
Заходим на http://vk.com/editapp?act=create и выбираем Standalone приложение.
После создания приложения вводим адрес сайта и базовый домен, на котором он располагается.
Следующим шагом скачиваем последнюю версию модуля с drupal.org (link), распаковываем его на сервере и устанавливаем, как обычный модуль.
После установки переходим на страницу с настройками модуля. Вводим Application ID и Application secret code, которые мы получили при регистрации Standalone приложения. Также здесь указываем ID группы или пользователя, на чью стену будут публиковаться записи. О том, как узнать этот ID можно почитать здесь.
Теперь переходим на вкладку получения токена доступа от ВК (/admin/config/services/vkxp/access_token). Именно на этом шаге мы сталкиваемся с небольшим костылём. По процессу авторизации нам надо сначала получить код доступа, а потом по нему получить токен доступа. И если раньше это происходило в автоматическом режиме, то теперь надо будет сделать пару лишних телодвижений.
Первым делом нажмите на ссылку "Get code". Подтвердите доступ от внешнего приложения. Вам откроется новая ссылка по урлу https://oauth.vk.com/blank.html#code=SOME_CODE. После этого не обращайте внимание на то, что находится в окне браузера. Хладнокровно скопируйте содержимое параметра #code (SOME_CODE) и вставьте его на страницу с получением токена доступа. Жмите кнопку Get access token.
Теперь, когда токен доступа получен, мы можем заняться настройкой типов материала. Заходим на страницу настройки типа материала (/admin/structure/types/manage/[NODE-TYPE]), включаем вкладку Vkontakte CrossPoster settings и настраиваем поля, которые должны отправляться во Вконтакт.
С настройками мы закончили. Теперь в форме создания или редактирования материала этого типа появиться вкладка Vkontakte CrossPoster. Нажатие чекбокса Post this node to VK гарантирует вам отправку материала во Вконтакт.
Наслаждаемся результатом.
- Spleshka
- 24.02.2013
- 71652
Комментарии
Собственно приделывал аналогичный костыль, когда надо было завязаться с контактом. Я уж думал, ты чего изящнее предложишь ))
Изящнее в коде. Там ещё дополнительная проверка с ключом безопасности, незаметная пользователю, чтобы избежать уязвимостей. Но чтобы заделаться под десктопное приложение так или иначе надо редиректиться на vk.com/blank.html. Это неизбежно, к сожалению. В iframe этот редирект не отрабатывает.
а можно как нибудь прикрутить в этот модуль, вывод в блок(?какой-нибудь?) через его же апи запрос к апи вк? не хватает тямы сообразить самому. ну то есть этот же модуль уже авторизовался, так? и теперь он может напрямую через апи вк запросы слать, вот как это всё завернуть по человечески?
Запрос делается такой функцией:
$method - Метод API вконтакте
$params - набор пареметров, которые надо передать для использование метода API.
Обратите внимание, что для некоторых методов API требуются свои права доступа.
короче, если кому интересно, то это проще сделать через виджет вконтактовский ибо я так и не допетрил как засунуть эту функцию в блок
Большое спасибо за воскрешение модуля!
Вы - супер
А куда вписывать access_token в версии 6.x ?
Ответ нашел в этом комментарии. Но не работает.
Ответ тут.
Я готов проспонсировать бэкпорт на Drupal 6. Написал вам письмо через Контакты
Отличный модуль!!! Одна проблемка - как можно сделать, чтобы в посте ставилась не дефолтная ссылка на ноду, а ссылка, сформированная с помощью Pathauto (авто-алиасы для url)?
Должно поддерживать алиасы по умолчанию. Возможно, у вас что-то не так сконфигугировано.
Столкнулся с такой же проблемой, после небольших исследований недр гугла, выяснилось что дело а порядке исполнения модулей, и значит их хуков тоже.
Чтобы решить эту проблему надо либо ручками в базе, в таблице system для модуля vkxp прописать weight БОЛЬШЕ чем для pathauto, тогда vkxp_node_insert будет выполняться после pathauto_node_insert и в этой строчке
$url = url('node/' . $node->nid, array('absolute' => TRUE));
все отрабатывает как надо. либо испольщуя модуль
http://drupal.org/project/util
Выставить порядок модулей в админе.
Надеюсь еще кому нибудь это поможет )
Автору спасибо за модуль!
подскажите как сделать чтобы при постинге в вк отображалась картинка анонса а не логотип сайта. Я использую поле Massage source - Заголовок
Ребята, а это нормально что появившийся материал в vk не имеет ссылки на сайт. Если да, то как можно это исправить, а то модуль теряет всякий смысл.
И фоки тоже не подгружаются, но это ладно пусть не подгружаются, лишь заголов выходил ссылкой на сайт
А вы в настройки модуля не залазите по религиозным причинам?
От меня тоже большое спасибо за воскрешение! Очень был нужен этот модуль для одного проекта и теперь можно вернуться к работам над ним!
Спасибо за модуль, очень долго ждали. Ребят добавьте пожалуйста рулсы в модуль. У нас Новости на сайте, и есть уникальные а есть переписанные. Уникальные публикуются на главной, и хотелось бы только их отправлять вконтакт...
Спасибо за отличный модуль. От себя хотелось бы добавить небольшой патч для совместимости с Multiupload Imagefield Widget
Что-то ссылка не вставилась... http://yadi.sk/d/Ej2JEfky3em_q
при добыче кода для токена ВК пишет:
"Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту."
насколько велик шанс быть забаненным? или речь идет просто о риске потерять акк из-за действий мошенников?
Никто вас не забанит. Риск потерять акк по идее имеет место быть, однако после ввода этого кода, для шифровки ещё используется секретный ключ из Вконтакте. Так что можете не переживать даже за аккаунт.
Спасибо за модуль, отличная вещь! Подскажите, а нет ли возможности отключить на стене VK отображение содержимого по ссылке? Например, если отправляется материал, который не содержит картинок, то после этого материала VK подцепляет обрезанное содержимое страницы по ссылке (как если бы была нажата кнопка "поделиться"). Или, может быть, возможно перенести настройку Add link on wall to posted page из настроек модуля, в настройки типа материала?
Здравствуйте! Cкажите а возможно ли как то вставлять в вконтакте изображения с водяным знаком, который добавляется на сайте ? А то получается что на сайте изобраения с знаком а на vk.com нет...
29 мая стала писать: Невозможно получить сервер для загрузки изображений. Ошибка: User authorization failed: no access_token passed.
До этого работала отлично
Привет, +1 к последнему комментарию.
Сделала все по инструкции,а ВК не постит. Ошибок не выдает.
не работает, делал все по инструкции
СПС БОЛЬШОЕ ЗА МОДУЛЬ. разобрал его, открыл много нового для себя. Правда ссылки не экспортировались, пришлось $url добавлять в поле сообщения, а не за изображениями.
Добрый день. Спасибо за отличный модуль! Скажите пожалуйста, на сколько сложно и возможно ли сделать, чтобы при посте изображения постился не оригинал картинки, а стиль изображения, указанный на сайте в параметрах вывода, или еще лучше чтобы параллельно с полем выбора изображения было поле выбора стиля отображения для поста. Причина - у меня в ноде загружается большое изображение без ватермарков. Стилями оно сжимается для нужных размеров и наносится ватермарк. Не хотелось бы раздавать собственные изображения в высоком разрешении всем подряд. Спасибо.
Может кому пригодится. Нужно в файле модуля найти строчки:
$uri = file_load($image['fid'])->uri;
$images[] = '@' . drupal_realpath($uri);
и заменить их на:
$uri = image_style_path('s', file_load($image['fid'])->uri);
$images[] = '@' . drupal_realpath($uri);
где "s" - название стиля изображения.
Но конечно хотелось бы не лезть каждый раз в код, а сделать это опцией.
на drupal 6 не работает, делаю по инструкции на этапе настройки модуля выдает
Ключ доступа не был получен от сервера vkontakte.ru. Ошибка: invalid_grant (redirect_uri is undefined.)
ошибка повторяется на vkxp-6.x-2.x-dev и vkxp-6.x-2.0-rc3 как исправить?
6 версия уже не поддерживается. Хотите рабочую версию - сделайте бэкпорт с 7ки, там не много.
а поподробнее можно?
Здравствуйте! У меня при попытке получения токена сайт выдает ошибку 500, что может быть не так?
А в паблике те на страницу будет кроспостить или только в профиль и группу?
сам себе отвечаю - работает на все 100% спасибо
Спасибо за модуль! А скажите возможно ли отправления материала не при создании ноды и при редактировании, а с уже опубликованной, что б юзер мог нне имеющий права на созданию ноды отправить в ВК?
И ещё вопрос - на странице друга можно постить, готов проспонсировать модуль !
Привет, Евгений!
Попытался найти модуль по поиску на d.org, но без успеха. Искал по модулям используя фразы "vc.com" и "vkontakte".
Думаю, не я один так ищу )
P.S. Спасибо за модуль!
Привет, Костя :) Лови ссылку
здравствуйте. по какой причине после ввода ключа доступа может происходить пустая страница?
всё по гайду. жму получить токен-загрузка-белая страница.
логи друпала пусты.
отвечаю. во первых не хватало курла (компонент пхп)
во вторых нужно было переразрешить доступ приложению. тупил вконтактик.
Спасибо за модуль, но есть одно НО. Если материал создается с пометкой неопубликовано, то кросспостинг все равно происходит. Как сделать так, чтоб материал отправлялся спустя время смены статуса на опубликовано? Спасибо.
подскажите каким образом мне на сайте можно сделать кнопку лайк, чтобы лайки были связанны с кросспостнутой нодой в вк?
Здравствуйте. Подскажите пожалуйста, в чем может быть дело? Установил и настроил модуль, если вручную создавать ноду с включенным по умолчанию модулем, все работает исключительно. Но, если ноды импортируются с помощью модуля Feeds то почему-то кросспостинг во Вконтакте не происходит. Также не происходит кросспостинг и в твиттер, если записи импортируются через feeds. Но если отправлять запись вручную, в твиттер тоже постится все изумительно. Куда смотреть? Подскажите пожалуйста.
Как можно указать в конце каждого сообщения тег #новости?
уверен сделать это просто, просьба ответить.
Парни, а как сделать так, что бы текст вконтакт постился не из body или заголовка ноды, а из тизера (если тизер отдельно есть) либо согласно настроек дефолтного тизера (ну типа 600 символов)
please mail answer to alexey[собака]nikolayev.me also
спасибо! ;)
Не видит field image видит, если используется виджет multiupload.
Все сделал, но при переходе по ссылке Get code
у меня вываливается что-то непонятное http://my-site.ru/go/6328?client_id=4066765&scope=wall%2Cgroups%2Cphotos%2Coffline&redirect_uri=http%3A//oauth.vk.com/blank.html&response_type=code
Как мне получить этот #code ? как должна выглядеть эта ссылка по get code киньте кто-нибудь
Спасибо!
Все, разобрался. Видимо из-за того что у меня на сайте стоит по ссылкам редирект менялась первая часть, вместо http://my-site.ru/go/6328 надо было поставить https://oauth.vk.com/authorize?
Вот была бы интеграция с Rules, было бы вообще шикарно!
Взяла в обслуживание старый сайтик на шестом друпале, отключила в настройках Vkontakte CrossPoster постинг по умолчанию и постинг статей, оставила только новости. Но постинг статей в группу всё равно идет! Причем тех, что были опубликованы месяц назад((( Где искать ошибку?
Добрый день, Евгений! Установил ваш модуль, всё настроил, пытаюсь кросспостить новости в паблик, но почему-то не работает. При создании ноды ставлю галочку кросспоста, в паблике ничего не появляется. В логах сайта тоже ничего нет. Помогите, пожалуйста, в чем может быть проблема?
Добрый день!
Подскажите пожалуйста, а можно ли crosspost вконтакт одновременно и Title и Body материала?
Ваще респект вам!
Спасибо за модуль! Может подскажите как заставить добавляться изображения с виджетом multiupload или plupload? С одним изображением поле можно выбрать, а вот более одного - нет.
Спасибо огромное за модуль! Подскажите, как подружить его с модулем Feeds? Руками созданые Feed item репостит, а созданные автоматом - нет.
Привет всем, спасибо за модуль.
Подскажите а как быть с постингом товара от commerce? там Product display, соответственно нету таких настроек для постинга товара в типе вариаций товара. :( Есть решение этому?
Скажите а можно ли кроспостить заголовок и body одновременно?
автор модуля давно уже не появляется здесь, так что вы зря время тратите ожидая его ответ. заметил, последний раз он появлялся тут в прошлом году
Модуль отличный! Допили для себя функционал автоматической постилки по крону выбранных типов нод один раз в день. Вобще допилить можно все, и постить боди и заголовок одновременно и аплоадить с multiupload картинки, у меня картинки в image_crop были. Я в вк если что
Для добавления multiupload filefield нужно заменить в файле vkxp.forms.inc строку:
elseif ($field_instance['widget']['module'] == 'image')
на:
elseif ($field_instance['widget']['module'] == 'multiupload_imagefield_widget' || $field_instance['widget']['module'] == 'image')
Подскажите пожалуйста, можно ли прописать хэштеги? Чтобы автоматом вставлялись пост.
Можно, можете посмотреть как реализовано здесь.
Работает с рулес? Мне необходимо делать пост, когда я подтверждаю материал через рулес.
Интеграция с рулсами отсутствует. Если всё же будете её сами допиливать - было бы здорово, если бы вы закинули патч на друпал.орг.
Скажите, модуль не обновлялся с 2013года. Собиратесь обновлять?
Добрый день! Интересует, можно ли постить сразу и title и body? Еще ругается
Deprecated function: curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead в функции vkxp_query() (строка 271 в файле /usr/share/nginx/html/ptz/sites/all/modules/vkxp/vkxp.module).
Это, я подозреваю, из-за php 5.5...
Решил свой вопрос с добавлением полей просто:
Но есть другая проблема. При постинге вконтакт сообщения, периодически слетает все с ноды. Остается только заголовок. А картинка, текст, таксономия исчезает полностью. При этом в ВК все ок. Как отследить, что проиходит? Может кто знает?
Добрый день! А подскажите пожалуйста куда именно добавить эти поля в vkxp.module ?
Поствил модуль Scheduler для автопостинга во времени.
Также поставил модуль VK CrossPoster для автопостинга вконтакте.
Но вот незадача, когда модуль Scheduler постит на сайте, то новые посты не идут вконтакт.
А созданые вручную идут вконтакт.
Как исправить?
Комментировать