Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Плагин авторизации через VK для IPS 4.x

index.php?app=downloads&module=display&section=screenshot&id=303

Имя файла: Плагин авторизации через VK для IPS 4.x

Владелец файла: siv1987

Файл размещен: 15 Дек 2015

Файл обновлен: 18 Дек 2015

Категория файла: Модификации

 

Плагин содержит метод авторизации через Вконтакте для IPB 4x.

 

Нажмите сюда, чтобы скачать этот файл

Рекомендованные сообщения

Уже не помню, что там было, но проблема, видимо, ушла. В любом случае спасибо за ответ.

 

Пользуясь случаем, хотел бы спросить. В грядущей версии 4.3 планируется внедрение полной поддержки OAuth 2.0, где можно будет привинчивать авторизацию через любые сервисы, поддерживающие упомянутый протокол:

 

https://invisioncommunity.com/news/product-updates/43-sign-in-from-other-sites-using-oauth-r1058/

 

Стоит ли ждать инструкций по переносу данных с этого плагина на встроенный функционал?

Стоит ли ждать инструкций по переносу данных с этого плагина на встроенный функционал?

Для начала нужно дождаться выхода 4.3 и посмотреть на реализацию.

  • 3 недели спустя...

Пришло письмо от ВК:

 

Здравствуйте!

 

Вы получили это сообщение, так как являетесь администратором приложения https://vk.com/app*** на нашей платформе.

 

Сейчас Ваше приложение генерирует большое количество ошибок — это значит, что часть функциональности в приложении или на Вашем сайте недоступна пользователям. К примеру, может не работать авторизация.

 

Ранее, если Вы не указывали в своём запросе параметр v (версию), он автоматически считался равным 3.0. Теперь этот параметр стал обязательным для всех запросов к API.

 

Сервер вернет ошибку 8 на запрос, в котором не указана версия API. Если методы в Вашем приложении стали возвращать ошибку "invalid request" на любой запрос или сломалась авторизация — укажите в запросах используемую версию API для возобновления работы.

 

Более подробно о грядущих изменениях мы писали здесь: https://vk.com/dev/version_update

 

Если на Вашем сайте или в приложении используется сторонний плагин, в разработке которого Вы не участвовали — обратитесь к его автору, показав это сообщение, чтобы он мог внести необходимые изменения.

 

С уважением,

Команда ВКонтакте

 

Хотя с виду вроде пока работает.

Аналогичное сообщение прошло.

Во все запросы, отправляемые к api VK нужно добавить параметр v с указанием версии.

Спасибо, получается

 

Перед: \system\Login\vk.php

 

$userData = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$details[1]}&access_token={$details[0]}&fields=first_name,last_name,screen_name,bdate,nickname" )->request()->get()->decodeJson();

 

Перед: \system\Login\vk.php

 

$userData = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$response['user_id']}&access_token={$response['access_token']}&fields=first_name,last_name,screen_name,bdate,nickname" )->request()->get()->decodeJson();

 

 

Перед: \applications\core\sources\ProfileSync\vk.php

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}" )->request()->get()->decodeJson();

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}&fields=photo_max_orig&https=" . intval( \IPS\Request::i()->isSecure() ) )->request()->get()->decodeJson();

 

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}" )->request()->get()->decodeJson();

 

$response = \IPS\Http\Url::external( "https://api.vk.com/method/getProfiles?uid={$this->member->vk_id}&access_token={$this->member->vk_token}&fields=status" )->request()->get()->decodeJson();

 

 

Добавить: ?

$params['v'] = '5.73';

Добавить: ?

$params['v'] = '5.73';

А это откуда взялось?

 

&access_token

заменить на

&v=5.73&access_token

  • 2 месяца спустя...

Это же другой плагин. Я пользуюсь плагином от siv1987 из этой темы.

- Создать хендлер для VK по инструкции.

 

- Создать в корне php-файл со следующим содержимым

<?php

require_once 'init.php';
\IPS\Dispatcher\External::i();

if (!\IPS\Member::loggedIn()->isAdmin())
{
\IPS\Output::i()->redirect(\IPS\Http\Url::internal(''));
}

try
{
$vkLoginId = 10000;
$loginMethod = \IPS\Db::i()->select('*', 'core_login_methods', array('login_id=?', $vkLoginId))->first();
}
catch (\Exception $e)
{
\IPS\Output::i()->error('VK-метод авторизации не обнаружен', '1-VKCONVERT/1');
}

try
{
$test = \IPS\Db::i()->select('vk_id, vk_token', 'core_members')->first();
}
catch (\Exception $e)
{
\IPS\Output::i()->error($e->getMessage(), '1-VKCONVERT/2');
}

foreach (\IPS\Db::i()->select('member_id, vk_id, vk_token', 'core_members', array('vk_id>0')) as $member)
{
\IPS\Db::i()->insert('core_login_links', array(
	'token_login_method' => $vkLoginId,
	'token_member'		 => $member['member_id'],
	'token_identifier'	 => $member['vk_id'],
	'token_linked'		 => TRUE,
	'token_access_token' => $member['vk_token'],
), false, true);
}

10000 заменить на ID созданного хендлера

 

- Обратиться к файлу

  • 1 год спустя...

Подниму тему как на 4.4.5 организовать регистрацию/авторизация через VK?? пробовал различные варианты все не работают на 4.4, рабочий один вариант это https://invisioncommunity.com/files/file/9396-vkcom-integration/ но он тяжёлый зараза создает по 20-25забросов в бд при просмотре темы не понятно для чего.

Может есть у кого легкое решение для регистрации/авторизации через VK??

Подниму тему как на 4.4.5 организовать регистрацию/авторизация через VK??

Встроенный метод с созданием хендлера чем не устраивает?

Встроенный метод с созданием хендлера чем не устраивает?

не хочет работать, вроде все настроил по инструкции что тут https://invisioncommunity.com/news/product-updates/43-sign-in-from-other-sites-using-oauth-r1058/

то есть настройки выглядят так https://yadi.sk/i/reJjBJcAt2xQBw

единственное не понял про настройку User Information Endpoint у меня она выглядит так https://api.vk.com/method/users.get?fields=screen_name,photo_medium возможно тут и есть ошибка

При попытке войти выдает ошибку "Что-то пошло не так. Пожалуйста, попробуйте еще раз." в системных логах ошибки

Array
(
   [error] => Array
       (
           [error_code] => 8
           [error_msg] => Invalid request: v is required. Version param should be passed as "v". "version" param is invalid and not supported.
           [request_params] => Array
               (
                   [0] => Array
                       (
                           [key] => fields
                           [value] => screen_name,photo_medium
                       )

                   [1] => Array
                       (
                           [key] => method
                           [value] => users.get
                       )

                   [2] => Array
                       (
                           [key] => oauth
                           [value] => 1
                       )

               )

       )

)

#0 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(449): IPS\_Log::log('Array\n(\n    [er...', 'oauth_custom')
#1 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(294): IPS\Login\Handler\OAuth2\_Custom->_userData('0740fa1a0d3ecb6...', 'response[0][uid...')
#2 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(384): IPS\Login\Handler\OAuth2\_Custom->authenticatedUserId('0740fa1a0d3ecb6...')
#3 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(368): IPS\Login\Handler\_OAuth2->_processAccessToken(Object(IPS\Login), Array)
#4 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(164): IPS\Login\Handler\_OAuth2->_handleAuthorizationResponse(Object(IPS\Login))
#5 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Login.php(316): IPS\Login\Handler\_OAuth2->authenticateButton(Object(IPS\Login))
#6 N:\OSPanel\domains\ipb43.ru\forum\applications\core\modules\front\system\login.php(57): IPS\_Login->authenticate()
#7 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Controller.php(96): IPS\core\modules\front\system\_login->manage()
#8 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
#9 N:\OSPanel\domains\ipb43.ru\forum\index.php(13): IPS\_Dispatcher->run()
#10 {main}

 

и

IPS\Login\Exception::2
generic_error

#0 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(294): IPS\Login\Handler\OAuth2\_Custom->_userData('0740fa1a0d3ecb6...', 'response[0][uid...')
#1 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(384): IPS\Login\Handler\OAuth2\_Custom->authenticatedUserId('0740fa1a0d3ecb6...')
#2 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(368): IPS\Login\Handler\_OAuth2->_processAccessToken(Object(IPS\Login), Array)
#3 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(164): IPS\Login\Handler\_OAuth2->_handleAuthorizationResponse(Object(IPS\Login))
#4 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Login.php(316): IPS\Login\Handler\_OAuth2->authenticateButton(Object(IPS\Login))
#5 N:\OSPanel\domains\ipb43.ru\forum\applications\core\modules\front\system\login.php(57): IPS\_Login->authenticate()
#6 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Controller.php(96): IPS\core\modules\front\system\_login->manage()
#7 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
#8 N:\OSPanel\domains\ipb43.ru\forum\index.php(13): IPS\_Dispatcher->run()
#9 {main}

Вставил в параметр User Information Endpoint такую ссылку https://api.vk.com/method/users.get?fields=screen_name&v=5.101

результат тот же ошибка только изменилась

Array
(
   [response] => Array
       (
           [0] => Array
               (
                   [id] => **
                   [first_name] => ****
                   [last_name] => *******
                   [is_closed] => 1
                   [can_access_closed] => 1
                   [screen_name] => id****
               )

       )

)
#0 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(449): IPS\_Log::log('Array\n(\n    [re...', 'oauth_custom')
#1 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\Custom.php(294): IPS\Login\Handler\OAuth2\_Custom->_userData('17489e6ac564078...', 'response[0][uid...')
#2 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(384): IPS\Login\Handler\OAuth2\_Custom->authenticatedUserId('17489e6ac564078...')
#3 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(368): IPS\Login\Handler\_OAuth2->_processAccessToken(Object(IPS\Login), Array)
#4 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Handler\OAuth2\OAuth2.php(164): IPS\Login\Handler\_OAuth2->_handleAuthorizationResponse(Object(IPS\Login))
#5 N:\OSPanel\domains\ipb43.ru\forum\system\Login\Login.php(316): IPS\Login\Handler\_OAuth2->authenticateButton(Object(IPS\Login))
#6 N:\OSPanel\domains\ipb43.ru\forum\applications\core\modules\front\system\login.php(57): IPS\_Login->authenticate()
#7 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Controller.php(96): IPS\core\modules\front\system\_login->manage()
#8 N:\OSPanel\domains\ipb43.ru\forum\system\Dispatcher\Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
#9 N:\OSPanel\domains\ipb43.ru\forum\index.php(13): IPS\_Dispatcher->run()
#10 {main}

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.