Prime31. Facebook. Permissions

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Prime31. Facebook. Permissions

Сообщение Rinal 17 апр 2013, 17:33

Все доброго времени суток. Недавно купил себе замечательный плагин SocialNetworkingAndroid от Prime31. Все работает хорошо, вот только один нюанс. После того как человек залогинился, мне нужно получить от него его e-mail. В плагине есть функция:
Синтаксис:
Используется csharp
// Gets the permissions granted to the current access token
public static List<object> getSessionPermissions()
 

которая выдает разрешения для данной сессии. Что бы получить пользовательский e-mail, я использовал следующий код:
Синтаксис:
Используется csharp
public UILabel result = null;
private void GETPermissions()
    {      
        List<object> permissions = FacebookAndroid.getSessionPermissions();

        if (FacebookAndroid.isSessionValid())
        {
            result.text = "Permissions is:   ";
            for (int i = 0; i < permissions.Count; i++)
                result.text += i.ToString() + " " + permissions[i].ToString() + " ";
        }
        else
        {
            result.text = "No login!";
            LOGIN();
        }
    }
 

Но на девайсе в лаейблу получил: "email", "user_birthday". Я понимаю, что получил только имена переменных, но как мне получить их фактические значения? В прайме используют такое:
Синтаксис:
Используется csharp
if( GUILayout.Button( "Get Granted Permissions" ) )
                {
                        var permissions = FacebookAndroid.getSessionPermissions();
                        Debug.Log( "granted permissions: " + permissions.Count );
                        Prime31.Utils.logObject( permissions );
                }
 

Метод Prime31.Utils.logObject( permissions );, как я думаю (проверить не получилось), выдает значения в консоль. Подскажите, пожалуйста, кто с таким сталкивался, и как с этим бороться? Как получить значения, который хранятся в коллекции permissions??? :((
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение Rinal 17 апр 2013, 21:24

Немного уточню, вся эта информация мне нужна что бы авторизировать пользователя через фейсбук... Я это к тому, что если есть другой способ авторизации, то это было бы замечательно...
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение seaman 17 апр 2013, 21:36

На фейсбуке вроде тоже oauth. Так что курите доки по vk. Наверняка там аналогично. Ну в любом случае есть докина самом фейсбуке
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Prime31. Facebook. Permissions

Сообщение Rinal 17 апр 2013, 22:12

seaman писал(а):На фейсбуке вроде тоже oauth. Так что курите доки по vk. Наверняка там аналогично. Ну в любом случае есть докина самом фейсбуке


Да, сижу там уже долго, просто не знаю с чего начать. В плагине нашел функции для запросов:
Синтаксис:
Используется csharp
// Sends off a graph request. The completion handler will return a Hashtable or Arraylist if successful depending on the path called.
        // See Facebook's documentation for the returned data and parameters
        public void graphRequest( string path, Action<string, object> completionHandler )
        {
                get( path, null, completionHandler );
        }


        public void graphRequest( string path, HTTPVerb verb, Action<string, object> completionHandler )
        {
                graphRequest( path, verb, null, completionHandler );
        }


        public void graphRequest( string path, HTTPVerb verb, Dictionary<string, object> parameters, Action<string, object> completionHandler )
        {
                surrogateMonobehaviour.StartCoroutine( send( path, verb, parameters, completionHandler ) );
        }
 

Вот только что в них слать, пока ума не приложу... :( И как потом расшифровать данные делегата "completionHandler"?
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение NxShape 18 апр 2013, 03:19

Как вариант надо отправить запрос в facebook через graphRequest. В твоем случаи надо написать
Синтаксис:
Используется csharp
FacebookAndroid.graphRequest("me", "GET", new Dictionary<string, string>()
{
      {"fields", "email"}
});
 

и в этом событии
Синтаксис:
Используется csharp
FacebookManager.graphRequestCompletedEvent
 

тебе придет ответ в виде Hashtable. Но он придет только в том случаи если у тебя есть пермишен для этого
Для написания таких запросов удобно использовать http://developers.facebook.com/tools/explorer
Это пример для андроида. Для iOS аналогично.
NxShape
UNец
 
Сообщения: 8
Зарегистрирован: 01 июл 2011, 13:09
Skype: nxshape

Re: Prime31. Facebook. Permissions

Сообщение Rinal 18 апр 2013, 08:45

Спасибо большое, уже есть с чего начать. Сейчас буду пробовать! :)
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение Rinal 18 апр 2013, 11:06

Спасибо огромное!!! Получилось!!! Я Вам очень благодарен!!! Теперь буду то же для твитера пытаться сделать... И еще вопрос: может вы знаете как включить дебаг с устройства?
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение Rinal 18 апр 2013, 14:14

Стыдно писать, но столкнулся с такой же проблемой в твиттере. :( Нашел функцию для запроса:
Синтаксис:
Используется csharp
public static void performRequest( string methodType, string path, Dictionary<string,string> parameters )
 

Вид запроса (как я понимаю) methodType = "get". Подскажите пожалуйста что нужно передавать в параметрах (string path, Dictionary<string,string> parameters) что бы получить e-mail пользователя? Заранее благодарен!
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение Rinal 18 апр 2013, 14:59

Нашел как получить свой логин:
Синтаксис:
Используется csharp
private void SENDRequest()
    {
#if UNITY_ANDROID
            TwitterAndroid.performRequest("get", "/1.1/account/settings.json", null);
#elif UNITY_IPHONE
#endif
    }
 

Среди всей инфы этого запроса мы получим screen_name пользователя, который, вроде как, уникальный. Вот можно ли вообще получить имейл, я не знаю...
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29

Re: Prime31. Facebook. Permissions

Сообщение NxShape 18 апр 2013, 15:33

Виды запросов в twitter https://dev.twitter.com/docs/api/1.1
Ищите что вам надо там.
NxShape
UNец
 
Сообщения: 8
Зарегистрирован: 01 июл 2011, 13:09
Skype: nxshape

Re: Prime31. Facebook. Permissions

Сообщение Rinal 18 апр 2013, 16:25

NxShape писал(а):Виды запросов в twitter https://dev.twitter.com/docs/api/1.1
Ищите что вам надо там.

Спасибо, я про это уже знаю. С утра там сижу, вот и нашел запрос на аккаунт. Я уверен что мыло тоже можно вытянуть, просто думал что кто-то это уже делал и подскажет мне запрос. Если найду его первым, то отпишусь сюда.
Rinal
UNIт
 
Сообщения: 91
Зарегистрирован: 25 апр 2012, 15:29


Вернуться в Почемучка

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

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 22