Узнать vk_user_id через приложение IFrame Есть решение
Итак имеем витрину, которая работает в соцсети VK. Требуется узнать id пользователя в Вконтакте.
В шаблоне имеется данный код
{$vk_app_id = $theme_settings.vk_app_id}
{$vk_app_secret = $theme_settings.vk_app_secret}
{$viewer_id = $wa->get('viewer_id')}
{if $viewer_id}
{$auth_key = md5("`$vk_app_id`_`$viewer_id`_`$vk_app_secret`")}
{if $auth_key === $wa->get('auth_key')}
{$wa->storage('vk_user_id', $viewer_id)}
{/if}
{/if}
Я так понимаю он инициирует авторизацию приложения и прописывает через storage, id пользователя сети ВКонтакте в сессию. А вот получить его никак мне не удаётся, подскажите как сделать.
Или может я совсем неверно понял код?
5 ответов
Да, все верно. Идентификатор пользователя хранится в $viewer_id. Поэтому вы можете в шаблоне например вывести значение через {$viewer_id}.
В том то и дело, что ничего не выводит данный код, уже пробовал. И кэш чистил в инсталлере, пусто. Иначе не задавал бы вопрос.
Сейчас ещё потестил, выяснил что код: $wa->get('viewer_id') не срабатывает, id не находится. В чём может быть причина? Приложение работает как положено, но id невозможно получить.
Для приложения доступны следующие права: Доступ к общей информации
Приложению доступны Ваше имя, дата рождения, фотография и базовая информация на странице.
Подразумевается ли id пользователя под этими правами?
Ну мне кто нибудь ответит, почему $wa->get('viewer_id') не принимает id пользователя ВК?
Приложение включено и видно всем.
Наконец-то нашёл причину. Может кому пригодится. Так вот при создании приложения в ВК указал адрес без слэша(http://....../vk) а надо было всего лишь вот так: http://....../vk/
Ответ с ВК отправлялся просто не по нужному адресу.