Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Помогите пройти Authorization Code Flow для API Вконтакте

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Alinalessio

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь подключиться по API Вконтакте.  
Вот по этим шагам, пытаюсь пройти авторизацию приложения, чтобы получить токен для подключения приложения на сервере https://vk.com/dev/authcode_flow_group
 
Само приложение"VK Mini Apps"
В настройках указал путь к файлу на сервере.  
 
На втором шаге "2. Открытие диалога авторизации" заполняю ссылку данными, как в примере, только своими данными, но получаю ошибку:
 

Код:
{"error":"invalid_request","error_description":"OAuth authorization cannot be used from native VK applications"}

 
Подскажите пожалуйста, что я не так делаю? Как пройти авторизацию?

Всего записей: 223 | Зарегистр. 21-06-2010 | Отправлено: 01:58 20-12-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alinalessio

Цитата:
OAuth authorization cannot be used from native VK applications

вроде ясно написано.
OAuth нельзя использовать с нативными VK приложениями.

Цитата:
Получить ключ доступа пользователя можно одним из этих способов:
Implicit flow. Для работы с API от имени пользователя в Javascript-приложениях и Standalone-клиентах (десктопных или мобильных).
Authorization code flow. Для работы с API от имени пользователя с серверной стороны Вашего сайта.

для других платформ это не нужно, так как ключ передается в параметрах.
 
либо неправильно указаны ID или иные данные.
 
слишком мало информации чтобы сказать точно.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 02:06 20-12-2020 | Исправлено: Mavrikii, 02:19 20-12-2020
Alinalessio

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
слишком мало информации чтобы сказать точно.

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

 
2. Читал АПИ ВК, но до самого использования АПИ так и не дошло. Пока тупо не могу наладить сопряжение между файлом, который лежит на сервере и самим приложением. Для этого надо токен, вроде, но как его добыть не пойму.
 
3. Какой тип приложения надо создавать? VK Mini Apps. Это?
 
4. А как его активировать? Как получить токен?
 
5. Или мои первоначальные шаги ошибочны и надо идти по другому пути?

Всего записей: 223 | Зарегистр. 21-06-2010 | Отправлено: 13:22 20-12-2020 | Исправлено: Alinalessio, 13:26 20-12-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alinalessio

Цитата:
Для этого надо токен, вроде, но как его добыть не пойму.

так как у вас встраиваемое приложение, то авторизацию делать не нужно, VK сам передаст нужные параметры при вставке страницы в iframe.
авторизация нужна для тех приложений, которые работают самостоятельно, без обращения к ним со стороны VK.
пример для понимания - https://github.com/VKCOM/vk-apps-launch-params
 
в случае же отдельного скрипта на сервере, который выполняет какие то действия через API через какие то промежутки времени или иные события, а не когда он открывается во фрейме страницы в VK, ему нужна авторизация.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 22:06 20-12-2020 | Исправлено: Mavrikii, 22:09 20-12-2020
Alinalessio

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня на сервере такой файл, на который смотрит приложение ВК:

Код:
 
<?php
$group_token = '6ec12f0755ds6fg51sdf6d6g5sd1f65dsf6df5g1df5dbf859ffa20012d61d256c84c12dfb8ec961ae30b131a20';
 
$code = 'return {
    "title": "Заголовок виджета",
    "title_url": "vk.com/title_url", // Ссылка заголовка
    "title_counter": 1, // Число в заголовке
    "text": "Текст",
    "descr": "Описание",
    "more": "Текст дополнительной ссылки",
    "more_url": "vk.com/more_url", // Дополнительная ссылка
};';
 
$api_url = 'https://api.vk.com/method/appWidgets.update';
$api_parameters = array(
'type' => 'donation',
'code' => $code,
'access_token' => $group_token,
'v' => 5.126
);
 
echo curl($api_url, $api_parameters);
 
function curl($link, $post = null) {
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
 
$response = curl_exec($ch);
 
curl_close($ch);
 
return $response;
}
?>
 

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

Всего записей: 223 | Зарегистр. 21-06-2010 | Отправлено: 22:48 20-12-2020 | Исправлено: Alinalessio, 22:50 20-12-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alinalessio

Цитата:
$group_token =

не светили бы, если реальный. иначе могут воспользоваться.
для группового виджета авторизация не нужна - этот токен и есть авторизация.
пример создания - https://yougame.biz/threads/49253/

Код:
$code = 'return {
    "title": "Заголовок виджета",
    "title_url": "vk.com/title_url", // Ссылка заголовка
    "title_counter": 1, // Число в заголовке
    "text": "Текст",
    "descr": "Описание",
    "more": "Текст дополнительной ссылки",
    "more_url": "vk.com/more_url", // Дополнительная ссылка
};';

здесь указываете какие поля виджета обновлять этим скриптом.
читать о https://vk.com/dev/objects/appWidget
судя по картинке, вам нужен виджет типа List
 
 
но, в целом, читать вам нужно https://vk.com/dev/community_apps
 
ps: я это пишу в отношении вашего куска кода. подходов может быть много и разных.
с этим куском вы просто выбираете один из стандартных доступных виджетов и обновляете в нем данные.
 

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:26 20-12-2020 | Исправлено: Mavrikii, 23:45 20-12-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Помогите пройти Authorization Code Flow для API Вконтакте


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru