UnAPI - враппер функций ВКонтакте API для Unity

Лучший способ помочь другим, поделиться своими находками.

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение Nolex 01 май 2011, 22:16

alex89200, большое спасибо за проделанную работу!


alex89200 писал(а):
Vadis писал(а):Подскажите, как получить имя и фамилию текущего пользователя? Нужно очень срочно

JSCore.GetParams("OnGetParams"); присылает hash=


Гет парамс возвращает ID текущего пользователя. Дальше данные о нем можно получить через VK.Users.GetProfiles()

У меня такая же проблема, JSCore.GetParams("OnGetParams"); выдает hash=, вместо ID юзера, в чем беда?

Вывожу через GameObject.Find("text2").guiText.text = "DATA: " + ParamData;:

Синтаксис:
Используется csharp
    /// <summary>
    /// Вызывается при получении параметров из GET запроса
    /// </summary>
    /// <param name="ParamData">Содержит параметры GET запроса</param>
    public void OnGetParams(string ParamData)
    {
        GameObject.Find("text2").guiText.text = "DATA: " + ParamData;
                //VK.Users.GetProfiles();
                string[] param = ParamData.Split(new char[] {'='});
        Params.Add(param[0], param[1]);

        //инициализация класса "низкоуровневых" запросов.
        VKReq.Init(Params["api_url"], Params["api_id"], Params["viewer_url"],
                   RequestFormat.XML, Params["secret"], "", Params["sid"]);
    }
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение alex89200 03 май 2011, 13:45

Nolex писал(а):alex89200, большое спасибо за проделанную работу!

У меня такая же проблема, JSCore.GetParams("OnGetParams"); выдает hash=, вместо ID юзера, в чем беда?

Вывожу через GameObject.Find("text2").guiText.text = "DATA: " + ParamData;:

Синтаксис:
Используется csharp
    /// <summary>
    /// Вызывается при получении параметров из GET запроса
    /// </summary>
    /// <param name="ParamData">Содержит параметры GET запроса</param>
    public void OnGetParams(string ParamData)
    {
        GameObject.Find("text2").guiText.text = "DATA: " + ParamData;
                //VK.Users.GetProfiles();
                string[] param = ParamData.Split(new char[] {'='});
        Params.Add(param[0], param[1]);

        //инициализация класса "низкоуровневых" запросов.
        VKReq.Init(Params["api_url"], Params["api_id"], Params["viewer_url"],
                   RequestFormat.XML, Params["secret"], "", Params["sid"]);
    }



OnGetParams(string ParamData) вызывается для КАЖДОГО параметра. Последним передается hash, насколько я помню, поэтому в ParamData и содержится только он. Все параметры, которые передаются приложению, записываются в словарь Params. Оттуда их и надо вытягивать.
Аватара пользователя
alex89200
UNец
 
Сообщения: 45
Зарегистрирован: 08 окт 2010, 15:31

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение Nolex 03 май 2011, 17:02

Ага, спасибо большое!

Сделал прогон и выдало все параметры.

Синтаксис:
Используется csharp
        void OnGUI() {
                string paraaaam = "";
               
               
                        foreach (var pair in Params)
        {
          paraaaam += pair.Key + "||" + pair.Value +  "\n";
        }
                GUI.TextArea(new Rect(10, 290, 200, 150), paraaaam);
               
        }
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение DEtH_MoroZ 30 июн 2011, 18:44

найс, очень помогло. спасибо.
Аватара пользователя
DEtH_MoroZ
UNIт
 
Сообщения: 58
Зарегистрирован: 01 апр 2011, 15:33

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение depsemt 15 окт 2011, 21:39

Друзья, могли бы вы разместить простенький рабочий пример?
depsemt
UNIт
 
Сообщения: 73
Зарегистрирован: 26 июл 2010, 04:25

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение depsemt 22 окт 2011, 11:49

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

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using VK.Core;
using VK.VKApi;

public class New : MonoBehaviour {

void Start()
{
    JSCore.GameObjName = gameObject.name;
    VKUsers.GetProfiles("1643791", UsrFields.photo_rec, NameCase.nom_Default, OnGetProfiles);
}

public void OnGetProfiles(string Response)
{
    GameObject.Find("text2").guiText.text = + Response;
}
}
depsemt
UNIт
 
Сообщения: 73
Зарегистрирован: 26 июл 2010, 04:25

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение Nolex 22 ноя 2011, 18:24

У меня вопрос. Враппер не поддерживает "Защищенное взаимодействие приложения с API"?
ссылка

Мне надо для обычной(не соц.версии) игры, тянуть авки игроков, которые через контакт зареганы.

p.s. еще раз спасибо за враппер! Мне очень понравилось как сделано.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение alex89200 22 ноя 2011, 19:54

Насколько я помню поддерживается. Там вроде были методы для отправки secure сообщений
Аватара пользователя
alex89200
UNец
 
Сообщения: 45
Зарегистрирован: 08 окт 2010, 15:31

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение Nolex 23 ноя 2011, 00:11

alex89200 писал(а):Насколько я помню поддерживается. Там вроде были методы для отправки secure сообщений

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

VKRequests vkr = gameObject.GetComponent<VKRequests>();
vkr.SendSecureRequest("GetProfiles", блабла...?);

А каком формате вводить параметры и callback?
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение alex89200 23 ноя 2011, 14:15

В SendSecureRequest() передается стринговое имя метода ВК, вызываемый при получении ответа метод, в который будет передана строка с ответом, и массив параметров в формате "параметр=значение".
Параметры для конкретного метода можно узнать в документации ВК.

Пример для GetProfiles:

Синтаксис:
Используется csharp
......
VKCommunicator vkc = gameObject.GetComponent<VKCommunicator>();
vkc.VKReq.SendSecureRequest("GetProfiles", OnGetProfiles, new string[] { "uids=1234567890,543212345,9876789", "name_case=dat" });
......

public void OnGetProfiles(string s)
{
    Debug.Log(s);
}
Аватара пользователя
alex89200
UNец
 
Сообщения: 45
Зарегистрирован: 08 окт 2010, 15:31

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение Nolex 23 ноя 2011, 18:59

alex89200 писал(а):В SendSecureRequest() передается стринговое имя метода ВК, вызываемый при получении ответа метод, в который будет передана строка с ответом, и массив параметров в формате "параметр=значение".
Параметры для конкретного метода можно узнать в документации ВК.

Пример для GetProfiles:

Синтаксис:
Используется csharp
......
VKCommunicator vkc = gameObject.GetComponent<VKCommunicator>();
vkc.VKReq.SendSecureRequest("GetProfiles", OnGetProfiles, new string[] { "uids=1234567890,543212345,9876789", "name_case=dat" });
......

public void OnGetProfiles(string s)
{
    Debug.Log(s);
}

Ага, спасибо! Пришлось покопаться, метод оказался нерабочим, у ВК видимо были изменения в АПИ. А именно — нехватает обязательных полей, таких как timestamp и random.
Еще одна важная штука. Я неправильно писал название метода. нужно getProfiles, а не GetProfiles

Вот обновленный и рабочий метод. Еще раз спасибо автору за проделанную работу! (3A4OT)

Синтаксис:
Используется csharp
        public void SendSecureRequest(string method, ResponseCallback callback, params string[] metParams)

        {

            string sigParams = "";

            WWWForm form = new WWWForm();

            List<string> reqParams = new List<string>();

               

                        //получаем текущее время в секундах. timestamp

                        int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;

               

            //запись всех переданных и доп. параметров в лист

            reqParams.AddRange(metParams);

            reqParams.Add("api_id=" + Api_id);

            //if (Format != RequestFormat.XML)

                reqParams.Add("format=" + "json");

            reqParams.Add("v=3.0");

                        reqParams.Add("timestamp=" + unixTime);

                        //рандомное число

                        reqParams.Add("random=" + UnityEngine.Random.Range(0, 100000));

            reqParams.Add("method=" + method);



            //сортировка по алфавиту

            reqParams.Sort();



            //составление строки параметров для получения подписи sig, а также запись параметров в POST форму

            foreach (string param in reqParams)

            {

                sigParams += param;



                string[] keyValuePair = param.Split('=');

                form.AddField(keyValuePair[0], keyValuePair[1]);

            }



            //получение подписи запроса

                        print(sigParams + "  " +  API_Secret);

            string sig = GetMD5(sigParams + API_Secret);



            //добавление подписи к списку параметров в POST форме

            form.AddField("sig", sig);



            //выполнение запроса и вызов обратной функции при получении ответа

            StartCoroutine(CallbackOnResponse(ApiURL, form, callback));

        }
 
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение alex89200 24 ноя 2011, 13:15

Nolex писал(а):у ВК видимо были изменения в АПИ. А именно — нехватает обязательных полей, таких как timestamp и random.


Вполне возможно :) Времени уже много прошло.
Аватара пользователя
alex89200
UNец
 
Сообщения: 45
Зарегистрирован: 08 окт 2010, 15:31

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение radiys 02 дек 2011, 14:42

(3A4OT) (3A4OT)
Автору большое спасибо за проделанную работу! Очень пригодилось в программе :)
radiys
UNец
 
Сообщения: 1
Зарегистрирован: 01 дек 2011, 23:56

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение cibersant 23 дек 2011, 15:28

Подскажите.
1.Как распарсить Responce.
2.Как построить запрос,чтобы получит ответ в json.
JSON я распарсить могу.
_https://vk.com/app4031890 - 3d боец
cibersant
Старожил
 
Сообщения: 938
Зарегистрирован: 14 дек 2011, 01:27

Re: UnAPI - враппер функций ВКонтакте API для Unity

Сообщение Energy 23 янв 2012, 22:47

Большое спасибо за враппер! Очень помог! Но у меня проблема с GetUserBalance.

По нажатию на кнопку вызываю GetUserBalance, после получения ответа в обработчике проверяю хватает ли у пользователя голосов:

Синтаксис:
Используется csharp
//нажатие на кнопку
if (GUI.Button(new Rect(30, 300, 100, 30), "Купить")) {
        VKUsers.GetUserBalance(OnGetUserBalance);
}

//обрабатываем полученный результат
public void OnGetUserBalance (string response) {
        int votes = int.Parse(response);        
        if (votes < 100) {
                //голосов недостаточно. Вызываем showPaymentBox
                JSApi.ShowPaymentBox(1);
        } else {
                //списываем голоса
        }
}


Но обработчик OnGetUserBalance молчит :( Проверял чарлезом - ответ {"response":0} приходит, но обработчик его не ловит что ли... :-\ В чем тут может быть дело?
Аватара пользователя
Energy
UNец
 
Сообщения: 41
Зарегистрирован: 06 окт 2011, 12:26
Откуда: 40 rus
  • Сайт
  • ICQ

Пред.След.

Вернуться в Исходники (Копилка)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3