在Oauth中链接的登录异常
本文关键字:登录 异常 链接 Oauth | 更新日期: 2023-09-27 18:28:59
我正试图从使用Linked it登录的用户那里获取用户id。
我可以登录并获得访问令牌。但是我下面的try语句失败了,并给了我一个异常"System.NotImplementedException:请求的功能没有实现。"
有什么建议我如何获得用户id吗?
try
{
var request = HttpWebRequest.Create(string.Format(@"https://api.linkedin.com/v1/people/~:(id)?oauth2_access_token=" + access_token + "&format=json", ""));
request.ContentType = "application/json";
request.Method = "GET";
var user_ID = values["user_id"];
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
System.Console.Out.WriteLine("Stautus Code is: {0}", response.StatusCode);
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var content = reader.ReadToEnd();
if (!string.IsNullOrWhiteSpace(content))
{
System.Console.Out.WriteLine(content);
}
var result = JsonConvert.DeserializeObject<dynamic>(content);
}
}
}
catch (Exception exx)
{
System.Console.WriteLine(exx.ToString());
}
有效的登录功能。
var auth = new OAuth2Authenticator(
clientId: "MYID",
clientSecret: "SECret",
scope: "r_basicprofile",
authorizeUrl: new Uri("https://www.linkedin.com/uas/oauth2/authorization"),
redirectUrl: new Uri("http://adults.wicareerpathways.org/"),
accessTokenUrl: new Uri("https://www.linkedin.com/uas/oauth2/accessToken")
);
auth.AllowCancel = true;
auth.Completed += (sender, eventArgs) => {
if (eventArgs.IsAuthenticated)
{
string dd = eventArgs.Account.Username;
var values = eventArgs.Account.Properties;
var access_token = values["access_token"];
// var user_ID = values["user_id"];
if (linkedinLoginCompleted != null)
{
var LinkedInAccount = new Mobile.LinkedIn.Account
{
Username = eventArgs.Account.Username,
Properties = eventArgs.Account.Properties
};
linkedinLoginCompleted(LinkedInAccount);
}
Xamarin在其文档中将动态代码生成列为限制:
由于iPhone的内核阻止应用程序生成代码iPhone上的dynamic Mono不支持任何形式的动态代码生成。其中包括:
System.Reflection.Emit不可用。不支持System.Runtime.Remoting。不支持动态创建类型(无Type.GetType("MyType`1")),尽管正在查找现有类型(例如,Type.GetType("System.String")工作得很好)。颠倒回调必须在编译时向运行库注册。
来源:Xamarin限制
您可以反序列化为特定的类型,这应该可以解决问题。