Xamarin.Auth не работает с Linkedin V2 API - PullRequest
0 голосов
/ 20 февраля 2019

Я на самом деле пытаюсь сделать простой вход в систему с помощью Linkedin и нового API V2 с расширением Xamarin.Auth.Я действительно получаю токен, подобный этому

var auth = new OAuth2Authenticator(
    clientId: *****,
    clientSecret: *****,
    scope: "r_liteprofile",
    authorizeUrl: new Uri("https://www.linkedin.com/oauth/v2/authorization"),
    redirectUrl: new Uri(*****),
    accessTokenUrl: new Uri("https://www.linkedin.com/oauth/v2/accessToken")
    );

, но когда я пытаюсь сделать запрос, он терпит неудачу с {"serviceErrorCode": 100, "message": "В PARAMETER: исключение обработки данных, исключение при обработкеобработка полей [/ access_token, / format] "," status ": 403}.Код для этой ошибки:

var request = new OAuth2Request(
    "GET",
    new System.Uri("https://api.linkedin.com/v2/me?"
    + "format=json"
    + "&oauth2_access_token="
    + e.Account.Properties["access_token"]),
    null,
     e.Account
    );

var linkedinResponse = await request.GetResponseAsync();
var json = linkedinResponse.GetResponseText();
Console.WriteLine(json);

Если я вынимаю поля, происходит сбой из-за пустого маркера доступа: {"serviceErrorCode": 65604, "message": "Пустой токен доступа oauth2", "status": 401} Код для этой ошибки:

var request = new OAuth2Request(
                    "GET",
                    new System.Uri("https://api.linkedin.com/v2/me"),
                    null,
                    e.Account
                    );

var linkedinResponse = await request.GetResponseAsync();
var json = linkedinResponse.GetResponseText();

Console.WriteLine(json);

Я подтвердил, что получил токен.В поисках решения я обнаружил, что токен должен быть в заголовке, но я не могу изменить или добавить какой-либо заголовок.Кто-нибудь может мне помочь, пожалуйста?

Большое спасибо.

PD: Забыл сказать, что этот код для Android, но мне нужно было сделать это и для iOS.

1 Ответ

0 голосов
/ 21 февраля 2019

Привет, наконец, я нашел решение этой проблемы.

В Linkedin API V2 вы должны изменить свое имя AccessTokenparameterName.

yourOauth2Request.AccessTokenParameterName = "oauth2_access_token";

Надеюсь, я смогу помочь кому-нибудь не злиться, как я.

...