Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Плагин авторизации через 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}

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.