【问题标题】:"(190) Invalid OAuth 2.0 Access Token" when swhitching to Facebook c# sdk 5.0.8切换到 Facebook c# sdk 5.0.8 时出现“(190)无效的 OAuth 2.0 访问令牌”
【发布时间】:2011-03-30 19:30:33
【问题描述】:

从 v4 迁移到 v5.0.3 后,我将切换到 Facebook C# SDK v5.0.8 Beta

使用 v5.03,我有:

                CanvasAuthorizer auth;
                var fb = new FacebookClient(appId, appSecret);

                if (!String.IsNullOrEmpty(_requiredAppPermissions))
                {
                    auth = new CanvasAuthorizer { Permissions = _requiredAppPermissions.Split(',') };
                }
                else
                {
                    auth = new CanvasAuthorizer();// { Permissions = RWE.Core.Config.FacebookPerms };
                }
                if (_AuthUrlCancel != "") auth.CancelUrlPath = _AuthUrlCancel;
                if (_AuthUrlReturn != "") auth.ReturnUrlPath = _AuthUrlReturn;

                if (auth.Authorize())
                {
                    fb = new FacebookClient(this.CurrentSession.AccessToken);
                    //do what i want
                }

现在,使用 v5.0.8,它不起作用并告诉我:

(190) OAuth 2.0 访问令牌无效 在 Facebook.FacebookClient.Api(字符串路径,IDictionary2 parameters, HttpMethod httpMethod, Type resultType) at Facebook.Web.FacebookWebClient.Api(String path, IDictionary2 参数,HttpMethod httpMethod,类型 resultType) 在 Facebook.Web.FacebookWebContext.HasPermissions(String appId, String appSecret, Int64 userId, String[] 权限) 在 Facebook.Web.FacebookWebContext.IsAuthorized(String[] 权限) 在 Facebook.Web.FacebookWebAuthorizer.Authorize()

【问题讨论】:

    标签: facebook facebook-c#-sdk


    【解决方案1】:

    很抱歉给您带来了困惑。 FacebookClient 不是 FacebookApp 的直接替代品。 FacebookApp 用于查看会话并获取 access_token。 FacebookClient 不这样做。

    我建议您查看this 教程,您会找到执行此操作的适当方法。但简而言之,您需要这样做:

    var accessToken = FacebookWebContext.Current.AccessToken;
    var client = new FacebookClient(accessToken);
    

    或使用 FacebookWebClient 之类的:

    var client = new FacebookWebClient();
    

    FacebookWebClient 将为您处理从会话中获取访问令牌。 FacebookClient 不会。

    【讨论】:

    • 谢谢 Nathan,但我在使用权限时仍然遇到问题。如果没有定义权限,那就太好了。 var accessToken = FacebookWebContext.Current.AccessToken; var fb = new FacebookClient(accessToken); var auth = new CanvasAuthorizer(FacebookWebContext.Current); //auth.Permissions = new[] {"email"}; //这不起作用 if (auth.Authorize()) { dynamic myInfo = fb.Get("me"); lblTest.Text = myInfo.name; } //与 FacebookWebAuthorizer 相同的 pb
    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多