【问题标题】:Unable to extend facebook access token无法扩展 facebook 访问令牌
【发布时间】:2012-09-27 03:49:35
【问题描述】:

我正在尝试扩展我的 facebook 访问令牌,以下是我所做的。但是,我无法延长令牌,当我检查 facebook accesstoken 调试器时,它仍然显示令牌将在一小时后到期。

有什么想法吗?

    private string appId = "my app id";
    private string appSecret = "my app secret";
    private string returnUrl = "http://localhost:1868/callback";
    private string _scope = "user_about_me,publish_stream,user_videos,user_photos";

    [Test]
    public void GetFacebookLoginUrl()
    {
        var fb = new FacebookClient();
        dynamic result = fb.GetLoginUrl(
            new
                {
                    client_id = appId,
                    client_secret = appSecret,
                    redirect_uri = returnUrl,
                    response_type = "code",
                    scope = _scope
                }
            );
    }

    [Test]
    public void exchangeCodeForAccessToken()
    {
        var fb = new FacebookClient();
        dynamic result = fb.Get("oauth/access_token", new
        {
            client_id = appId,
            client_secret = appSecret,
            redirect_uri = returnUrl,
            code = "got the code after user accepts the request"
        });
    }


    [Test]
    public void ExtendExpiryTimeOfAccessToken()
    {
        var fb = new FacebookClient();
        dynamic result = fb.Get("oauth/access_token", new
        {
            client_id = appId,
            client_secret = appSecret,
            grant_type = "fb_exchange_token",
            fb_exchange_token = "token from preview method"
        });
    }

解决方案

从用户帐户中取消对应用程序的授权后,一切都开始变得有意义。 需要注意的一件事, 上面的代码实际上得到了一个“长寿命”的访问令牌,有效期为 60 天,并且不能延长。

如果使用Facebook client-side authentication,则可以使用“ExtendExpiryTimeOfAccessToken”示例对其进行扩展。

【问题讨论】:

    标签: c# facebook facebook-c#-sdk


    【解决方案1】:

    如果您最初开始开发应用程序并在离线访问折旧之前几个月前登录,您可能会受到此错误的影响。

    https://developers.facebook.com/bugs/341793929223330

    如果您受到影响,您需要取消对应用的授权,然后重试,这不会影响新用户。

    【讨论】:

    • 是的,我认为这是原因,我必须取消授权,然后一切都开始变得有意义。
    • 希望 Facebook 能尽快修复这个错误,但考虑到到目前为止花了多长时间,我没有屏住呼吸
    • @ArthurGuy 你的意思是每个用户都必须取消授权/删除应用程序并重新添加它吗?
    • 这是我发现解决问题的唯一方法。当离线访问最终被移除时,这可能会得到解决。
    猜你喜欢
    • 2012-02-29
    • 2012-06-10
    • 2012-03-30
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2012-06-22
    • 2013-08-22
    相关资源
    最近更新 更多