【问题标题】:How to renew Facebook access token using its C# SDK如何使用其 C# SDK 更新 Facebook 访问令牌
【发布时间】:2012-06-17 02:41:30
【问题描述】:
【问题讨论】:
标签:
facebook
facebook-c#-sdk
【解决方案1】:
这是我用来获得更长过期令牌的方法
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 连接”之类的错误。所以我再次尝试捕捉。也许你可以解决这个问题并帮助我:)
干杯
【解决方案2】:
这对我有用:
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();
}