我实际上是在尝试使用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”:“ PARAMETER中存在不允许的字段:处理字段[/ access_token,/ format]时出现数据处理异常”,“状态“: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。
答案 0 :(得分:2)
嗨,终于找到了解决方法。
在Linkedin API V2中,您必须更改AccessTokenparameterName。
yourOauth2Request.AccessTokenParameterName = "oauth2_access_token";
希望我能帮助别人不要像我一样生气。