VKXP модуль Drupal, изменение версии API
Если в 2к19 вы до сих пор держите сайт на Drupal и в качестве репоста статей в группу ВКонтакте используете модуль vkxp версии 7.x-2.0, то эта заметка для вас.
В начале июня, пытаясь закинуть статью на сайт и отрепостить в группе, Drupal любезно вернул мне ошибку, частью которой была ссылка https://vk.com/dev/version_update_2.0, где меня ожидала новость о том, что ВК отказывается от мажорных версий API, то есть приложения или сервисы использующие API ВКонтакте ниже пятой версии работать не будут.
На самом деле для восстановления работы модуля многого ненужно, достаточно поправить версию и проверить параметры. Все изменения будут проводиться в файле vkxp.module
Меняем версию API в функции vkxp_query
<?php
function vkxp_query($method, $params, $request_url = VKXP_API_REQUEST_URI) {
// Collect query data.
$query = array();
$query['v'] = '5.95'; //Старое значение 3, меняем его на последнюю версию API
$query['method'] = $method;
$query['params'] = $params;
$query['params']['v'] = '5.95'; //Старое значение 3, меняем его на последнюю версию API
$query['request_url'] = $request_url;
drupal_alter('vkxp_query', $query);
Согласно списку изменений в пятой версии меняются некоторые параметры
В нашем случае необходимо заменить два параметра:
- gid на group_id
- uid на user_id.
Эти параметры встречаются в файле несколько раз, можно поменять через поиск/замена вашего текстового редактора.
Должно получиться как-то так:
<?php
function _vkxp_get_upload_server() {
$params = array();
if (variable_get('vkxp_wall_owner', 'group') == 'group') {
$params['group_id'] = variable_get('vkxp_owner_id', ''); // старый параметр gid
}
else {
$params['user_id'] = variable_get('vkxp_owner_id', ''); // старый параметр uid
}
И еще в одном месте:
<?php
// Get owner ID depends on its type.
if (variable_get('vkxp_wall_owner', 'group') == 'group') {
$params['group_id'] = variable_get('vkxp_owner_id', '');
}
else {
$params['user_id'] = variable_get('vkxp_owner_id', '');
}
После этого должно все работать как и прежде. Возможно потребуется заново получить токен.
✍ Комментарии
Спасибо!
Ваш комментарий был отправлен и будет опубликован после его утверждения. 😊
OK