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

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

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

Сообщение pharaoh_d 18 июл 2012, 10:24

(3A4OT) (3A4OT) (3A4OT)
Спасибо за врапер! Очень полезная штука! Правда как и у остальных secure функции не работают.... сделал через ПХП.

вот собсно результат:http://vk.com/app3024990_137554611?ref=9

во время работы добавил в JSCore пару полезных функций мож кому еще пригодится:

Синтаксис:
Используется csharp
                 public static void hideUnity()
        {
                        Application.ExternalEval(
                                " document.getElementById('unityPlayer').style.visibility = 'hidden';"
            );
        }
                public static void showUnity()
        {
                        Application.ExternalEval(
                                "document.getElementById('unityPlayer').style.visibility = 'visible';"
            );
        }
                public static void alert(string msg)
        {
            Application.ExternalEval(
                                ("alert(msg);").
                                Replace("msg","'Unity say:" + msg + "'"));
        }

первые две функции полезны при открытии вконтактовских Боксов (inviteBox PaymentBox и тп)
а последняя полезна при отладке в IFrame прям на вконтакте.
прожект под Андроид _https://play.google.com/store/apps/details?id=com.airwave.aircraft
pharaoh_d
UNец
 
Сообщения: 8
Зарегистрирован: 10 июл 2012, 22:15
  • Сайт

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

Сообщение THRASHER 09 окт 2012, 22:51

Огромное спасибо! взял за основу))
THRASHER
UNец
 
Сообщения: 46
Зарегистрирован: 12 фев 2012, 23:56

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

Сообщение Nick_Field 23 ноя 2012, 16:47

Можно ли написать что-нибудь на стене без добавления фото?
В методе VKWall.SavePost() нашел /*(photo == "" ? "" :*/ ";photo:" + photo/*)*/ которое говорит об обязательной фотографии. Можно ли в таком случае использовать фотографию со стороннего сервера. Ннемного странно грузить скажем одну и ту же картинку на стену пользователю каждый раз при посте на стенку.

Из документации по wall.post:
message - текст сообщения (является обязательным, если не задан параметр attachments). Апи позволяет постить без картинок.
Работал над:
3DSolSystem
DragonIt Online for Android
DragonIt Online for iOs
Аватара пользователя
Nick_Field
UNец
 
Сообщения: 21
Зарегистрирован: 08 янв 2009, 03:10
  • ICQ

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

Сообщение Nick_Field 23 ноя 2012, 19:12

При использовании метода UploadPhotoToWall вываливается следующая ошибка:
Error: Rejected because no crossdomain.xml policy file was found
Как правильно грузить фотографии на стену? URL для загрузки именно на стенку я получил. А тут крэш :-s

UPD: проблема ушла. Хостил на дропбоксе, а там нельзя положить в корень домена crossdomain.xml. Сейчас перехостил и положил файлик в нужное место, все работает. Фотку заливает
Работал над:
3DSolSystem
DragonIt Online for Android
DragonIt Online for iOs
Аватара пользователя
Nick_Field
UNец
 
Сообщения: 21
Зарегистрирован: 08 янв 2009, 03:10
  • ICQ

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

Сообщение alex89200 26 ноя 2012, 14:59

Nick_Field писал(а):Можно ли написать что-нибудь на стене без добавления фото?

Можно. Там либо есть метод, не принимающий вложений, либо просто не указываешь какие аттачменты добавлять. Давно не смотрел, поэтому точно не помню, но склоняюсь ко второму варианту, когда просто не указываешь аттачменты. SavePost() используется только при постинге с вложениями.

Nick_Field писал(а):Можно ли в таком случае использовать фотографию со стороннего сервера.

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

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

Сообщение Nick_Field 26 ноя 2012, 19:11

Метод wall.savePost оказывается уже запрещен.
Я добавил/изменил пару важных методов в VKWall:

Синтаксис:
Используется csharp
        /// <summary>
        /// Возвращает адрес сервера для загрузки фотографии на стену пользователя. Возвращает объект с единственным полем upload_url
        /// </summary>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void GetPhotoUploadServer(ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);
            JSCore.Api("photos.getWallUploadServer", "", s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет фотографию для размещения её на стене пользователя.
        /// </summary>
        /// <param name="uid">id пользователя, на стене которого размещается запись.</param>
        /// <param name="server">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="photo">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="hash">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void SaveWallPhoto(int uid, int server, string photo, string hash, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);

            string prs = "uid:" + uid +
                         ";server:" + server +
                         ";photo:" + photo +
                         ";hash:" + hash;

            JSCore.Api("photos.saveWallPhoto", prs, s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет запись на стене пользователя.
        /// </summary>
        /// <param name="owner_id">Id стены, на которой будет размещен пост</param>
        /// <param name="message">Сообщение</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void Post(int owner_id, string message, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);

            string prs = "owner_id:" + owner_id +
            (message == "" ? " " : ";message:" + message);
            JSCore.HideUnity();
            JSCore.Api("wall.post", prs, s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет запись с картинкой на стене пользователя.
        /// </summary>
        /// <param name="owner_id">Id стены, на которой будет размещен пост</param>
        /// <param name="message">Сообщение</param>
        /// <param name="photo_id">Идентификатор фотографии, который представляет собой идущие через знак подчеркивания id пользователя, разместившего фотографию, и id самой фотографии. Пример значения photo_id: 6492_135055734</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void PostWithImage(int owner_id, string message, string photo_id, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);
            string prs = "owner_id:" + owner_id +
                         ";message:" + message +
                         ";attachments:"+photo_id;
            JSCore.HideUnity();
            JSCore.Api("wall.post", prs, s.Substring(0, s.IndexOf('(')));
        }
Работал над:
3DSolSystem
DragonIt Online for Android
DragonIt Online for iOs
Аватара пользователя
Nick_Field
UNец
 
Сообщения: 21
Зарегистрирован: 08 янв 2009, 03:10
  • ICQ

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

Сообщение mfedorov 03 дек 2012, 22:04

Задача: после прохождения уровня вывести на стену в ВК сообщение. Третий день бьюсь. Есть ли какие то способы сделать запись на стену, не используя JS и WebView ? Если послать в запрос (https://login.vk.com/?act=login&email=МЫЛО&pass=ПАРОЛЬ в ответе responseHeaders - Dictonary приходят пары без tokien. Как быть с официальным запросом (http://oauth.vk.com/authorize?client_id=ИД ПРИЛОЖЕНИЯ&scope=ЗАПРОС НА ДОСТУП&display=page&redirect_uri=https://oauth.vk.com/blank.html&response_type=token) на android проекте вообще не понятно. Буду признателен за любую помощь.
mfedorov
UNец
 
Сообщения: 44
Зарегистрирован: 28 июн 2012, 08:36
Откуда: Тольятти

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

Сообщение pie 14 янв 2013, 22:27

Здравствуйте!
Как можно получить JSON ответ от VK вместо XML.
В настройках VKRequests ставлю JSON.
Далее есть код:
Синтаксис:
Используется csharp
using UnityEngine;
using VK.Core;
using VK.VKApi;

public class Profile : MonoBehaviour {
        public string vkId;
        public string name;
       
        public void Start() {
                JSCore.GameObjName = gameObject.name;
                VKUsers.GetProfiles(vkId, UsrFields.photo_medium, NameCase.nom_Default, OnGetProfiles);
        }

        public void OnGetProfiles(string Response) {
                name = Response;
        }
       
        public void OnGUI() {
                GUI.Label(new Rect(0, 0, Screen.width, Screen.height), name);
        }


Ответ приходит в XML. Спасибо!
Аватара пользователя
pie
UNец
 
Сообщения: 14
Зарегистрирован: 28 авг 2011, 16:19
  • ICQ

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

Сообщение Huruffus 30 мар 2013, 12:18

Здравствуйте. Можно ли использовать VK api где-нибудь кроме веб версии (к примеру авторизация с помощью VK в игре для PC)?
_ttp://rebirthgame.tumblr.com/
@jonarhipov
vk.com/jonarhipov
_jonarhipov@gmail.com
Huruffus
UNITрон
 
Сообщения: 174
Зарегистрирован: 02 июл 2012, 20:53
  • Сайт

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

Сообщение JIeo_NEED 02 май 2013, 12:55

Nick_Field писал(а):Метод wall.savePost оказывается уже запрещен.
Я добавил/изменил пару важных методов в VKWall:

Синтаксис:
Используется csharp
        /// <summary>
        /// Возвращает адрес сервера для загрузки фотографии на стену пользователя. Возвращает объект с единственным полем upload_url
        /// </summary>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void GetPhotoUploadServer(ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);
            JSCore.Api("photos.getWallUploadServer", "", s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет фотографию для размещения её на стене пользователя.
        /// </summary>
        /// <param name="uid">id пользователя, на стене которого размещается запись.</param>
        /// <param name="server">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="photo">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="hash">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void SaveWallPhoto(int uid, int server, string photo, string hash, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);

            string prs = "uid:" + uid +
                         ";server:" + server +
                         ";photo:" + photo +
                         ";hash:" + hash;

            JSCore.Api("photos.saveWallPhoto", prs, s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет запись на стене пользователя.
        /// </summary>
        /// <param name="owner_id">Id стены, на которой будет размещен пост</param>
        /// <param name="message">Сообщение</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void Post(int owner_id, string message, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);

            string prs = "owner_id:" + owner_id +
            (message == "" ? " " : ";message:" + message);
            JSCore.HideUnity();
            JSCore.Api("wall.post", prs, s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет запись с картинкой на стене пользователя.
        /// </summary>
        /// <param name="owner_id">Id стены, на которой будет размещен пост</param>
        /// <param name="message">Сообщение</param>
        /// <param name="photo_id">Идентификатор фотографии, который представляет собой идущие через знак подчеркивания id пользователя, разместившего фотографию, и id самой фотографии. Пример значения photo_id: 6492_135055734</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void PostWithImage(int owner_id, string message, string photo_id, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);
            string prs = "owner_id:" + owner_id +
                         ";message:" + message +
                         ";attachments:"+photo_id;
            JSCore.HideUnity();
            JSCore.Api("wall.post", prs, s.Substring(0, s.IndexOf('(')));
        }


Подскажите, пожалуйста, почему пост на стене размещается, а callback не идет?
Не возвращает ничегошеньки!
Аватара пользователя
JIeo_NEED
UNITрон
 
Сообщения: 228
Зарегистрирован: 01 мар 2012, 14:37
Откуда: Владивосток, Приморский край, Россия.
Skype: Develeone
  • Сайт

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

Сообщение alex89200 07 май 2013, 13:13

JIeo_NEED писал(а):Подскажите, пожалуйста, почему пост на стене размещается, а callback не идет?
Не возвращает ничегошеньки!

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

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

Сообщение Good1101 09 май 2013, 17:09

JIeo_NEED писал(а):
Nick_Field писал(а):Метод wall.savePost оказывается уже запрещен.
Я добавил/изменил пару важных методов в VKWall:

Синтаксис:
Используется csharp
        /// <summary>
        /// Возвращает адрес сервера для загрузки фотографии на стену пользователя. Возвращает объект с единственным полем upload_url
        /// </summary>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void GetPhotoUploadServer(ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);
            JSCore.Api("photos.getWallUploadServer", "", s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет фотографию для размещения её на стене пользователя.
        /// </summary>
        /// <param name="uid">id пользователя, на стене которого размещается запись.</param>
        /// <param name="server">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="photo">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="hash">параметр, возвращаемый в результате загрузки изображения на сервер.</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void SaveWallPhoto(int uid, int server, string photo, string hash, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);

            string prs = "uid:" + uid +
                         ";server:" + server +
                         ";photo:" + photo +
                         ";hash:" + hash;

            JSCore.Api("photos.saveWallPhoto", prs, s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет запись на стене пользователя.
        /// </summary>
        /// <param name="owner_id">Id стены, на которой будет размещен пост</param>
        /// <param name="message">Сообщение</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void Post(int owner_id, string message, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);

            string prs = "owner_id:" + owner_id +
            (message == "" ? " " : ";message:" + message);
            JSCore.HideUnity();
            JSCore.Api("wall.post", prs, s.Substring(0, s.IndexOf('(')));
        }

        /// <summary>
        /// Сохраняет запись с картинкой на стене пользователя.
        /// </summary>
        /// <param name="owner_id">Id стены, на которой будет размещен пост</param>
        /// <param name="message">Сообщение</param>
        /// <param name="photo_id">Идентификатор фотографии, который представляет собой идущие через знак подчеркивания id пользователя, разместившего фотографию, и id самой фотографии. Пример значения photo_id: 6492_135055734</param>
        /// <param name="callback">Функция-обработчик результата</param>
        public static void PostWithImage(int owner_id, string message, string photo_id, ResponseCallback callback)
        {
            string s = callback.Method.ToString().Remove(0, 5);
            string prs = "owner_id:" + owner_id +
                         ";message:" + message +
                         ";attachments:"+photo_id;
            JSCore.HideUnity();
            JSCore.Api("wall.post", prs, s.Substring(0, s.IndexOf('(')));
        }


Подскажите, пожалуйста, почему пост на стене размещается, а callback не идет?
Не возвращает ничегошеньки!

У меня возвращает сейчас проверял
Как тут стрелять?
Аватара пользователя
Good1101
Адепт
 
Сообщения: 1100
Зарегистрирован: 17 ноя 2011, 14:07
  • ICQ

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

Сообщение Nicloay 28 июн 2013, 13:08

кто будет работать на маке и столкнется с проблемой кодировки, следующая команда конвертнет файлы в utf-8 запускать из папки пакета. правда JSEvents сразу в utf поэтому его конвертить не надо

Синтаксис:
Используется csharp
for filename in $(find . -name *.cs); do iconv -f cp1251 -t utf-8 $filename > $filename.tmp ; mv -f $filename.tmp $filename;done
 


п.с. уже сконверченый прикреплен зааплоадил сюда.
У вас нет доступа для просмотра вложений в этом сообщении.
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

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

Сообщение D.Silver 06 июл 2013, 18:43

Мужики, если кого не затруднит.

Помогите разобраться с этим связыванием юньки и апи вк.
Может ли кто-то, просто мне на пальцах по шагово объяснить, на яве, как обратится к апи к с запросом параметров профиля. Врапер этот конечно классный, но хочется понять всю суть (базу) и на яве.

п.с Изрыл десятки страниц гугла, не нашел нормально объяснения для "нубов" как юнити взаимодействует с вк апи. 90% инфы это "возьмите это и скопируйте!"
Что я пока (по-нубски) понял, это то что юнити посредством Application.ExternalEval вызывает ява скрипт, но дальше без вашей помощи добрые люди не могу проехать =) Объясните принципы пожалуйста.
D.Silver
UNец
 
Сообщения: 24
Зарегистрирован: 03 фев 2011, 23:48

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

Сообщение Kayler 06 июл 2013, 23:24

D.Silver писал(а):Мужики, если кого не затруднит.

Помогите разобраться с этим связыванием юньки и апи вк.
Может ли кто-то, просто мне на пальцах по шагово объяснить, на яве, как обратится к апи к с запросом параметров профиля. Врапер этот конечно классный, но хочется понять всю суть (базу) и на яве.

п.с Изрыл десятки страниц гугла, не нашел нормально объяснения для "нубов" как юнити взаимодействует с вк апи. 90% инфы это "возьмите это и скопируйте!"
Что я пока (по-нубски) понял, это то что юнити посредством Application.ExternalEval вызывает ява скрипт, но дальше без вашей помощи добрые люди не могу проехать =) Объясните принципы пожалуйста.


там вроде в пакете есть небольшая документация
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Пред.След.

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

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

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