在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);
                }

在Oauth中链接的登录异常

Xamarin在其文档中将动态代码生成列为限制:

由于iPhone的内核阻止应用程序生成代码iPhone上的dynamic Mono不支持任何形式的动态代码生成。其中包括:

System.Reflection.Emit不可用。不支持System.Runtime.Remoting。不支持动态创建类型(无Type.GetType("MyType`1")),尽管正在查找现有类型(例如,Type.GetType("System.String")工作得很好)。颠倒回调必须在编译时向运行库注册。

来源:Xamarin限制

您可以反序列化为特定的类型,这应该可以解决问题。