3

Facebook C# SDK を使用して、投稿、コメント、ユーザー情報など、できるだけ多くのデータを Facebook から取得していますが、一定期間後にアクセス トークンが期限切れになるとプログラムが停止し、プログラムを再起動する必要があります。Facebook 開発者ツールからアクセス トークンを取得しましたが、トークンを更新するにはどうすればよいですか? http://csharpsdk.org/docs/web/handling-expired-access-tokensの TOTOです。

4

3 に答える 3

3

これは私のために働きます:

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(); 
}
于 2012-11-16T04:40:43.280 に答える
3

有効期限が長いトークンを取得するために使用するものは次のとおりです

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 接続を作成できませんでした」などのエラーが発生することがあります。だから私はキャッチでそれを再試行します。多分あなたはこれを解決して私も助けてくれるでしょう:)乾杯

于 2012-07-18T10:36:21.683 に答える
-3

最終的に、offline_access パーミッションを使用してこの問題を解決しました。最初にこれを参照してください: http://operatorerror.org/2011/07/get-a-facebook-api-access-token-that-never-expires/ 、あなたは期限のない Facebook API アクセス トークンを取得する方法を知っています。

次に、offline_access パーミッションを確認できないという問題が発生した場合は、これを参照してください: offline_access パーミッションが facebook グラフ api のグラフ api エクスプローラーに存在しない

于 2012-06-29T04:20:03.577 に答える