2013-08-02 2 views
0

В процессе переноса Xamarin.Auth на Windows 8 я столкнулся со следующей проблемой. При попытке аутентификации в LinkedIn с использованием OAuth2 и запроса токена доступа путем обмена кодом авторизации для него https://developer.linkedin.com/documents/authentication, Xamarin.Auth пытается проанализировать результат (объект JSON), как если бы это была строка с отформатированным URL-адресом. В RequestAccessTokenAsync (OAuth2Authenticator.cs) есть следующий кодXamarin.Auth не удалось разобрать JSON LinkedIn OAuth2 Запрос на токен доступа, заменив код авторизации

var text = task1.Result.GetResponseText(); [JSON object] 

var data = WebEx.FormDecode(text); 

ли я что-то отсутствует? Это ошибка в коде Xamarin.Auth? Все веб-сайты, основанные на OAuth2, возвращают объекты JSON в этом сценарии, и если не так, как определить тип формата, в котором находится результат, кроме попытки поиска индикаторов в самом результате?

Update:

Я редактировал расширение GetResponseText вернуть тип содержимого, в данном случае приложения/JSON и используется Json.NET для разбора JSON как функция GetValueFromJson в рамках не работает для JSON возвращается в этом сценарии.

После работы с этим фреймворком на пару дней, это, кажется, «бета-версия», мне придется широко модифицировать его, чтобы он был переносимым через Win8, WP8, iOS и Android.

например. Expect100Continue не поддерживается в W8, придется удалить HttpWebRequest и заменить HttpClient.

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

например. Анализ контента ContentType должен быть завершен в соответствии с соответствующими спецификациями.

ответ

0

Я считаю, что у вас есть устаревший источник, Xamarin.Auth получил возможность обрабатывать JSON токен аутентификации ответов месяц назад: https://github.com/xamarin/Xamarin.Auth/commit/f21773a52f58b9d82f3adf38acba509fa0e9aecc#L3L311

Проблемы, связанные с этой библиотекой лучше представлять в виде вопросов: https://github.com/xamarin/xamarin.auth/issues

например Expect100Continue не поддерживается в W8, придется удалить HttpWebRequest и заменить HttpClient.

Существует experimental-winphone ветви я толкнул на прошлой неделе, что добавляет библиотеку Windows Phone 8 и заменяет ядро ​​с HttpClient правильно поддерживают отключение Expect100Continue на других платформах.

Смежные вопросы