首页 > 解决方案 > Xamarin.Auth 不适用于 Linkedin V2 API

问题描述

我实际上是在尝试使用 Linkedin 和带有 Xamarin.Auth 扩展的新 API V2 进行简单登录。我确实得到了这样的令牌

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":"Unpermitted fields present in PARAMETER: Data Processing Exception while processing fields [/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”:“Empty oauth2 access token”,“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 做。

标签: xamarinoauthoauth-2.0linkedinxamarin.auth

解决方案


嗨,我终于找到了解决方案。

在 Linkedin API V2 中,您必须更改您的 AccessTokenparameterName。

yourOauth2Request.AccessTokenParameterName = "oauth2_access_token";

希望我能帮助别人不要像我一样生气。


推荐阅读