Модуль для автоматического добавления материала на vkontakte.ru

Главные вкладки

Аватар пользователя SplasH SplasH 24 сентября 2011 в 6:33

Доброго времени суток.

Недавно написал модуль, который позволяет при создании нод автоматически добавлять её на стену группы вконтакте. На данном этапе модуль позволяет размещать текст ноды, прикреплять к ней картинки и ссылку на материал. Сейчас он в режиме агрессивного тестирования, однако работать с ним уже можно. Чуть более подробно о нём можно почитать на странице с модулем vkxp

Приветствуются замечания и пожелания. Отдельная благодарность тем, кто сможет протестировать модуль в рабочих условиях.

Официальная страница с обсуждениями в моём блоге

Комментарии

Аватар пользователя Geldora Geldora 24 сентября 2011 в 8:15

Первый запрос: зарекоммендуйте релиз. пожалуйста Smile Тк драш не дает скачать модуль Lol

Спасибо за модуль!!! Буду очень активно тестить. Smile

Аватар пользователя Geldora Geldora 24 сентября 2011 в 9:23

Не дает сохраниться Sad

Access token was not recieved from vkontakte. Please, check your app ID and app secret

Причем, в первый раз, вышло на ВКонтакте, я разрешила все приложению...

И не сохраняются данные, только что введеные в форму.

Аватар пользователя SplasH SplasH 24 сентября 2011 в 9:36

В течение 5 минут будет доступен новый релиз (6.x-1.0-rc3). Перезалейте его, возможно, ошибка исчезнет. Если нет - убедитесь, что вы создали именно STANDALONE приложение и ввели правильные данные в поля настроек.

Аватар пользователя SplasH SplasH 24 сентября 2011 в 10:06

"<a href="mailto:Sentrashy@drupal.org">Sentrashy@drupal.org</a>" wrote:
под 7 хочу. аналогов, как я понимаю нет ;)

Под 7ку пока не буду портировать. Во-первых, сначала шестёрку надо полностью проверить и продумать. Во-вторых, проект некоммерческий, а времени свободного мало. В-третьих - да, аналогов нет Smile У контакта более-мене нормальное апи появилось только в этом году.. Есть похожий проект для WP, но он реализован костылями через cURL, и к тому же платный.

Аватар пользователя Sentrashy@drupal.org Sentrashy@drupal.org 24 сентября 2011 в 10:13

Понятно, ну успехов. Я на само деле верю в светлое будущее и что таки вконтакте будет через rss инфу тянуть, как это в фб реализованно.

Аватар пользователя SplasH SplasH 24 сентября 2011 в 10:28

"Crea" wrote:
HTTP запрос в функции темизации - гм...спорное решение

В основном, функция вынесена для использования в сторонних модулях и возможности изменения запроса.

Аватар пользователя Crea Crea 24 сентября 2011 в 11:42

SplasH wrote:
"Crea" wrote:
HTTP запрос в функции темизации - гм...спорное решение

В основном, функция вынесена для использования в сторонних модулях и возможности изменения запроса.

В сообществе Друпала часто упоминают выражение: "Если все, что у тебя есть, это молоток - все вокруг кажется гвоздями". Есть более подходящие механизмы, например alter хуки и ООП механизмы.
Да и как вы собрались дать возможность изменять другим модулям этот запрос ? Через прямое изменение реестра темизации ? Так это вдвойне кривое решение получается.

Аватар пользователя SplasH SplasH 24 сентября 2011 в 11:46

"Crea" wrote:
Есть более подходящие механизмы, например alter хуки

Я думал про это. Но с другой стороны, особого смысла прятать http запрос я не вижу. Если разработчик захочет - он вручную вызовет функцию, которая делает запрос, из темы, как бы глубоко спрятана она не была.

Аватар пользователя Crea Crea 24 сентября 2011 в 12:39

SplasH wrote:
"Crea" wrote:
Есть более подходящие механизмы, например alter хуки

Если разработчик захочет - он вручную вызовет функцию, которая делает запрос, из темы, как бы глубоко спрятана она не была.

Да конечно, разработчик может делать все что угодно (включая правку вашего кода). Это же не повод писать говнокод ?
Речь не о прятании, а о разделении слоев презентации и бизнес-логики.

Аватар пользователя SplasH SplasH 24 сентября 2011 в 13:00

"Crea" wrote:
Да конечно, разработчик может делать все что угодно (включая правку вашего кода). Это же не повод писать говнокод ?

Полностью согласен.

Аватар пользователя Empiric7 Empiric7 24 сентября 2011 в 22:23

Модуль очень нужный, и проблема кросспостинга в контакт назрела давно. Было бы очень классно, если модуль будет доведен до ума

Аватар пользователя SplasH SplasH 25 сентября 2011 в 18:03

"agent-000" wrote:
у вас отличный блог!

Спасибо

"Empiric7" wrote:
Было бы очень классно, если модуль будет доведен до ума

Предлагайте - чего там не хватает? Какий дополнительный функционал вы хотели бы увидеть?

Аватар пользователя SplasH SplasH 26 сентября 2011 в 13:47

"Plazik" wrote:
Можно ли сделать, чтобы он постил на публичную страницу?

Он уже имеет эту возможность. Надо лишь ввести ID юзера, и выбрать тип айдишника - пользователь (вместо группы)

Аватар пользователя SplasH SplasH 26 сентября 2011 в 20:03

"Plazik" wrote:
Но я имел ввиду не страницу пользователя, а публичную страницу вконтакте.

Понял. Я не нашёл постинга на публичные страницы в официальном апи от вконтакте. Если найдёте - стучитесь, буду дорабатывать модуль. http://vkontakte.ru/developers.php?oid=-1&p=%D0%9E%D0%BF%D0%B8%D1%81%D0%...

Аватар пользователя SplasH SplasH 26 сентября 2011 в 21:37

"Plazik" wrote:
Я нашел пока это http://vkontakte.ru/wall-28551727_271[/quote]

Я использую как раз эту функцию wall.post для отправки на стену пользователя или группы. Но я в документации по ней не нашёл разницы между пользователем и публичной страницей. http://vkontakte.ru/developers.php?oid=-1&p=wall.post

Аватар пользователя Айдар Айдар 10 ноября 2015 в 11:47

"SplasH" wrote:
Предлагайте - чего там не хватает?

Можно пару предложений, раз уж можно? Smile

1. Возможно, это следует отнести даже к багу - при обновлении материала он публикуется новой записью, т.е. скока раз нажал "сохранить" в материале, столько будет одинаковых записей на стене.
Возможно ли, чтобы запись публиковалась только при создании ноды (может из исходного урл брать как-то)?

2. Почему-то копируется часть символов как есть:

В целом, модуль отличный (правда, замучился его настраивать). Огромное Вам за него человеческое Спасибо!

Аватар пользователя SplasH SplasH 29 сентября 2011 в 16:06

"Айдар" wrote:
при обновлении материала он публикуется новой записью, т.е. скока раз нажал "сохранить" в материале, столько будет одинаковых записей на стене.
Возможно ли, чтобы запись публиковалась только при создании ноды (может из исходного урл брать как-то)?

При создании и редактировании материала есть филдсет vkontakte crossposter, в котором находится чекбокс "Отправить эту новость вконтакте". Если не ставить туда галочку, то новость не будет отсылаться вконтакт.

"Айдар" wrote:
Почему-то копируется часть символов как есть

А вот тут действительно надо бы добавить фильтр. Хтмл контакт не поддерживает, но хтмлные символы должны заменяться на обычные. Спасибо, это войдёт в новую версию модуля.

Аватар пользователя Айдар Айдар 29 сентября 2011 в 12:03

Точно, спасибо, ступил я... снова!

По второму пункту заметил, что только полиграфическое тире добавляет символом. Обычное вставляется правильно.

Аватар пользователя afishi afishi 30 сентября 2011 в 0:14

Евгений, а заносит на вк только от меня, или можно галочку поставить и будет дубль со всего сайта? (от других ников)

Аватар пользователя SplasH SplasH 30 сентября 2011 в 15:11

"afishi" wrote:
Евгений, а заносит на вк только от меня, или можно галочку поставить и будет дубль со всего сайта? (от других ников)

Как уже правильно заметил Айдар - от пользователя там не зависит. Если у пользователя на сайте есть права отправлять сообщения вконтакте (точнее, у роли этого пользователя) - он будет иметь возможность их отправлять.

Аватар пользователя S_F S_F 1 октября 2011 в 20:08

Для счастья не хватает автоматической ссылки на полную страницу на сайте. А то допустим публикую статью, срезает ее до нужных 200-300 символов, а где читать ее полностью непонятно.... вернее не очевидно.

Аватар пользователя SplasH SplasH 2 октября 2011 в 15:56

"S_F" wrote:
Для счастья не хватает автоматической ссылки на полную страницу на сайте. А то допустим публикую статью, срезает ее до нужных 200-300 символов, а где читать ее полностью непонятно.... вернее не очевидно.

В настройках модуля есть возможность добавлять ссылку на ноду.

Аватар пользователя Айдар Айдар 29 октября 2011 в 21:06

"SplasH" wrote:
Когда-нибудь да будет :)

Предлагаю уважаемого мсье SplasH простимулировать финансово для портирования в семерку. Smile
Уважаемый SplasH, сколько это будет стоить?

Аватар пользователя Айдар Айдар 5 ноября 2011 в 20:31

Эммм, не совсем! Вота!
Ждем последние 500р. Smile
Но в зависимости от того, когда будет готов модуль, я готов их покрыть (пока последние размениваю, после 20 числа будут). Если возьметесь таким образом, то отпишитесь в той теме, пожалуйста!

Аватар пользователя Айдар Айдар 10 ноября 2015 в 11:48

Где-то все-таки было подробное описание. В readme точно нет?

"Заводской раб" wrote:
как вводить id9865 или просто 9865

Без id.

"Заводской раб" wrote:
где взять секретный код приложения?

http://vk.com/apps.php?act=add&site=1

"Заводской раб" wrote:
приложение это паблик страница и группа?

Ощущение, что ты модуль вообще не ставил.

Аватар пользователя Mr_Ser_Win Mr_Ser_Win 2 апреля 2012 в 16:16

установил. ввожу ИД и секретный ключь, сохраняю. действие как то не дорабатывается. обновляю страницу, данные сохранились. нажимаю Receive new access token - ситуация повторяется. вывод не могу получить аксес токен скорее всего. как с этим бороться? Drupal7 у меня

Аватар пользователя winniepoo winniepoo 3 апреля 2012 в 1:00

Приветствую.
При запросе нового токена получаю сообщение
"Уникальный ключ доступа был получен от сервера vkontakte.ru. Теперь вы можете отправлять туда ваши материалы."
Т.е. типа все ОК. Аналогичное сообщение вижу в dblog.
При постинге материала ставлю галочку, но ничего не происходит, никаких запросов, сообщений и т.п.
ID группы указано, ID приложения и секретный код тоже.
В настройках приложения тип - STANDALONE, группа выбрана.
Куда дальше смотреть?

Аватар пользователя crucian crucian 11 апреля 2012 в 20:46

winniepoo wrote:
Приветствую.
При запросе нового токена получаю сообщение
"Уникальный ключ доступа был получен от сервера vkontakte.ru. Теперь вы можете отправлять туда ваши материалы."
Т.е. типа все ОК. Аналогичное сообщение вижу в dblog.
При постинге материала ставлю галочку, но ничего не происходит, никаких запросов, сообщений и т.п.
ID группы указано, ID приложения и секретный код тоже.
В настройках приложения тип - STANDALONE, группа выбрана.
Куда дальше смотреть?

аналогично, все настроено, но ноды не отсылает

Аватар пользователя crucian crucian 23 апреля 2012 в 9:38

Окно с запросом отправлять материал на стену или нет, после сохранения ноды, появляется только в ИЕ9, но страница перезагружается и окно пропадает. В ФФ, Опере, Хроме окно не появляется.

Аватар пользователя aa2007 aa2007 15 августа 2012 в 15:20

Подскажите, пожалуйста, такой момент: я так понимаю в модуле реализован свой API и я могу, используя функцию vkxp_query($api_method, $post_fields, $requert_url);, отправить себе на стену или в группу какое-нибудь сообщение. Но что-то мне опыта в кодинге не хватает понять как это сделать. Конкретно в моем случае я хочу отправлять сообщение в группу через рулес. Я создал правило, где в Actionc добавил "Выполнение PHP-кода":

<?php
$query
['params']['message'] = "Тест";
vkxp_query($api_method$post_fields$requert_url);
?>

И получаю ошибку:

Notice: Undefined variable: api_method в функции eval() (строка 2 в файле /sites/all/modules/rules/modules/php.eval.inc(146) : eval()'d code).
Notice: Undefined variable: post_fields в функции eval() (строка 2 в файле /sites/all/modules/rules/modules/php.eval.inc(146) : eval()'
d code).
Notice: Undefined variable: requert_url в функции eval() (строка 2 в файле /sites/all/modules/rules/modules/php.eval.inc(146) : eval()'d code).

Немного поменял код и ошибки исчезли, но сообщение на стене не появилось:

<?php
$api_method
"wall.post";
$post_fields['message'] = "Тест";
vkxp_query($api_method$post_fields$request_url 'https://api.vk.com/method/');
?>