如何使用其C#SDK续订Facebook访问令牌

感谢伟大的Facebook C#SDK,它简化了我的工作,处理Facebook API。 我使用sdk从Facebook获取尽可能多的数据,例如帖子,评论,用户信息,但是我的程序在我的访问令牌在某段时间后过期后停止,我必须重新启动程序。 访问令牌从https://developers.facebook.com/tools/access_token/获取,但我如何续订令牌? http://csharpsdk.org/docs/web/handling-expired-access-tokens中有TOTO。 任何人都可以请帮助解决这个问题? 非常感谢你。


这是我用来获得更长的到期令牌

FacebookClient fbcl = new FacebookClient(atoken);
fbcl.AccessToken = //your short access token;
fbcl.AppId = //your app id;
fbcl.AppSecret = // your app secret;

//try to get longer token
try
{
    dynamic result= fbcl.Get("oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=" + atoken);
    atoken = result.access_token;
}
catch
{
    dynamic result= fbcl.Get("oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=" + atoken);
    atoken = result.access_token;
}

有时候会出现“无法建立与FB的安全SSL连接”等错误。 所以我再试一次。 也许你可以解决这个问题并帮助我:)干杯


这适用于我:

public static string RefreshAccessToken(string currentAccessToken)
{
        FacebookClient fbClient = new FacebookClient();
        Dictionary<string, object> fbParams = new Dictionary<string, object>();
        fbParams["client_id"] = "your app id";
        fbParams["grant_type"] = "fb_exchange_token";
        fbParams["client_secret"] = "your client secret";
        fbParams["fb_exchange_token"] = currentAccessToken;            
        JsonObject publishedResponse = fbClient.Get("/oauth/access_token", fbParams) as JsonObject;
        return publishedResponse["access_token"].ToString(); 
}

我终于通过使用offline_access权限来解决这个问题,你可以先引用这个:http://operatorerror.org/2011/07/get-a-facebook-api-access-token-that-never-expires/,你将知道如何获得永不过期的Facebook API访问令牌。

接下来,如果遇到无法检查offline_access权限的问题,则可以参考此处:offline_access权限不存在于图形api资源管理器中,位于facebook图形API

链接地址: http://www.djcxy.com/p/61607.html

上一篇: How to renew Facebook access token using its C# SDK

下一篇: Facebook 60 day access token and Deprecated Offline