xamarin - 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 做。
解决方案
嗨,我终于找到了解决方案。
在 Linkedin API V2 中,您必须更改您的 AccessTokenparameterName。
yourOauth2Request.AccessTokenParameterName = "oauth2_access_token";
希望我能帮助别人不要像我一样生气。
推荐阅读
- node.js - 如何修复创建反应应用程序的错误?
- python - 嵌套跨度上的 Python Beautiful Soup 解析错误
- mongodb - 将日期戳插入到数组的新条目中
- javascript - 相同的代码第一次和第二次执行不同
- swift - 检查 NSSize 是否为零 - 比较“NSSize”类型的非可选值?
- java - 存储库模式如何符合 OOP 封装原则?
- c# - 在 UWP 中以编程方式查找元素的相对 z 顺序
- tensorflow - tensorflow2: keras: model.fit() 回调和急切模式
- c# - 使用新的根节点和新的项目源重新加载树视图
- f# - 创建对象列表