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

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

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

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

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

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

Комментарии

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

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

24 сентября 2011 в 8:15

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

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

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

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

24 сентября 2011 в 9:23

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

24 сентября 2011 в 9:36

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

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

24 сентября 2011 в 10:06

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

24 сентября 2011 в 10:13

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

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

24 сентября 2011 в 10:28

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

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

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

24 сентября 2011 в 11:42

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

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

24 сентября 2011 в 11:46

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

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

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

24 сентября 2011 в 12:39

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

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

24 сентября 2011 в 13:00

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

24 сентября 2011 в 22:23

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

Спасибо

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

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

25 сентября 2011 в 18:03

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

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

26 сентября 2011 в 13:47

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

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

26 сентября 2011 в 20:03

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

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

26 сентября 2011 в 21:37

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

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

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

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

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

10 ноября 2015 в 11:47

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

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

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

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

29 сентября 2011 в 16:06

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

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

29 сентября 2011 в 12:03

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

30 сентября 2011 в 0:14

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

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

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

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

1 октября 2011 в 20:08

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

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

2 октября 2011 в 15:56

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

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

29 октября 2011 в 21:06

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

5 ноября 2011 в 20:31

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

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

Без id.

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

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

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

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

10 ноября 2015 в 11:48

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

2 апреля 2012 в 16:16

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

3 апреля 2012 в 1:00

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

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

11 апреля 2012 в 20:46

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

23 апреля 2012 в 9:38

Подскажите, пожалуйста, такой момент: я так понимаю в модуле реализован свой 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/');
?>
15 августа 2012 в 15:20