Вторник, 26 Ноября 2024, 03:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Можно ли из приложения Unity получить access_token vk?
8Observer8Дата: Суббота, 06 Февраля 2016, 10:03 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Привет,

Можно обращаться к VkAPI из Standalone Unity приложения вот так:

Код
using UnityEngine;
using System.Collections;

public class UsersGet : MonoBehaviour
{
    IEnumerator Start()
    {
        WWWForm form = new WWWForm();
        form.AddField("user_id", "89375127");
        form.AddField("fields", "city, online, photo");
        form.AddField("v", "5.44");
        WWW www = new WWW("https://api.vk.com/method/users.get", form);
        yield return www;
        Debug.Log(www.text);
    }
}


Сервер vk вернёт JSON ответ:

Цитата
{"response":[{"id":89375127,"first_name":"Иван","last_name":"Енжаев","photo":"http:\/\/vk.com\/images\/camera_50.png"}]}


Так можно обращаться только к методам, которые не требуют access_token. Метод users.get как раз не требует:
Цитата
Это открытый метод, не требующий access_token.


Есть методы, которые требуют access_token. Для того, чтобы его получить нужно авторизироваться из приложения, но в документации написано:
Цитата
В качестве клиента может выступать любое приложение, имеющее доступ к управлению Web-браузером.


Это нужно для того, чтобы переправить пользователя на страницу авторизации. Может кто-то научился получать access_token из Unity. Опишите, пожалуйста, как вы это сделали.


Сообщение отредактировал 8Observer8 - Суббота, 06 Февраля 2016, 10:04
robertonoДата: Суббота, 06 Февраля 2016, 14:09 | Сообщение # 2
Чокнутый Кот
Сейчас нет на сайте
В качестве .net VK библиотеки я хотел бы порекомендовать https://vknet.github.io/vk/
8Observer8Дата: Суббота, 06 Февраля 2016, 16:57 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
robertono, помогите решить проблему. Я открыл NuGet, нашёл VkNet, нажал Install, а мне выдаёт ошибку:

Цитата
Installing 'VkNet 1.20.0'.
Successfully installed 'VkNet 1.20.0'.
Adding 'VkNet 1.20.0' to VkNetUnity.CSharp.
Uninstalling 'VkNet 1.20.0'.
Successfully uninstalled 'VkNet 1.20.0'.
Install failed. Rolling back...
Could not install package 'VkNet 1.20.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v3.5,Profile=Unity Subset v3.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.


Я так понимаю, что Unity использует .NET версии 3.5, а VkNet более новую верси. Как вам удалось подключить VkNet к Unty?


Сообщение отредактировал 8Observer8 - Суббота, 06 Февраля 2016, 16:59
MarkoffkaДата: Суббота, 06 Февраля 2016, 17:11 | Сообщение # 4
Pixel Logic
Сейчас нет на сайте
8Observer8, что мешает через обычный
сделать?
вроде как

могет в запросы?



Сообщение отредактировал Nitro - Суббота, 06 Февраля 2016, 17:16
8Observer8Дата: Суббота, 06 Февраля 2016, 17:55 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Nitro, для авторизации в vk он точно подойдёт?

Если бы в Unity был компонент WebBrowser, то я бы мог перейти на страничку авторизации так:
Код
webBrouser.Navigate(String.Format("https://oauth.vk.com/authorize?client_id={0}&scope={1}&redirect_uri={2}&display=page&response_type=token",

Я авторизировался из обычного WPF приложения, как в документации на vk написано.

Nitro, как мне авторизироваться на vk с помощью HttpWebRequest?

Добавлено (06 февраля 2016, 17:55)
---------------------------------------------
Надо посмотреть в исходниках VkNet. Может там не использутеся окно WebBrowser'а для авторизации.


Сообщение отредактировал 8Observer8 - Суббота, 06 Февраля 2016, 17:59
MarkoffkaДата: Суббота, 06 Февраля 2016, 18:58 | Сообщение # 6
Pixel Logic
Сейчас нет на сайте
8Observer8, план таков: СОСТАВИТЬ ЗАПРОС > ОТПРАВИТЬ ЗАПРОС > ПОЛУЧИТЬ ОТВЕТ
на хабре кат есть по этому поводу
8Observer8Дата: Суббота, 06 Февраля 2016, 21:55 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Цитата Nitro ()
СОСТАВИТЬ ЗАПРОС > ОТПРАВИТЬ ЗАПРОС > ПОЛУЧИТЬ ОТВЕТ

Приведу пример, как я авторизировался на WPF C#. Там принцип авторизации такой:

  • Сначала командуешь объекту класса WebBrowser перейти по ссылке авторизации: "https://oauth.vk.com/authorize?..."
  • Он показывает страницу авторизации. Вводишь логин и пароль, нажимаешь "Login"
  • Происходит переход по ссылке "https://oauth.vk.com/blank.html", который можно отловить событием объекта класса WebBrowser
  • С ссылкой blank.html приходят GET параметры, среди которых есть access_token


Цитата Nitro ()
на хабре кат есть по этому поводу

Вы уверены, что это будет работать в Unity? Там есть строка:
Цитата
создадим новый метод OAuthVk() который будет делать авторизацию через WebAuthenticationBroker, что это такое — это специальный класс который запускает стандартное окно в котором открывается ссылка для авторизации.

Как в Unity будет выглядеть "стандартное окно" для авторизации?
MarkoffkaДата: Воскресенье, 07 Февраля 2016, 17:28 | Сообщение # 8
Pixel Logic
Сейчас нет на сайте
8Observer8, способ авторизации один, а "стандартное окно" просто вывод...

Добавлено (07 февраля 2016, 17:26)
---------------------------------------------
8Observer8,
https://oauth.vk.com/authorize?client_id=CLIENTID&display=page&redirect_uri=http://vk.com/callback&scope=РАЗРЕШЕНИЯ&response_type=access или code&v=5.44
я где то бота писал, попробую найти исходник, там как раз была авторизация, а может и потерял так как давно было)

Добавлено (07 февраля 2016, 17:28)
---------------------------------------------
при переходе на
https://oauth.vk.com/authorize?client_id=123123123123&display=page&redirect_uri=http://vk.com/callback&scope=friends&response_type=access&v=5.44
тебя перенаправляют на стр с токеном, но способ оч легкий

Сообщение отредактировал Nitro - Воскресенье, 07 Февраля 2016, 17:26
robertonoДата: Воскресенье, 07 Февраля 2016, 22:34 | Сообщение # 9
Чокнутый Кот
Сейчас нет на сайте
8Observer8, к Unity я vknet не подключал, просто пользовался как то при создании приложения на C#, думал может и сюда подойдет, поэтому скинул.
berilДата: Воскресенье, 07 Февраля 2016, 22:50 | Сообщение # 10
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Глянь это может там что то есть



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг