2

Facebook アプリのユーザー認証に JSDK を使用しました。アクセス トークンを取得していますが、1/2 時間以内に有効期限が切れます。では、どうすれば長期アクセストークンを取得できますか?

私が使用したコードは次のとおりです。

 var fb = new FacebookClient();
 Dictionary<string,Object> sParams=new Dictionary<string,Object>();
 sParams.Add("client_id",My_App_ID);
 sParams.Add("client_secret",My_App_Secret);
 sParams.Add("grant_type","fb_exchange_token");
 sParams.Add("fb_exchange_token",Short_lived_accessToken);
 dynamic result = fb.Get("oauth/access_token",sParams);
 fb.AccessToken = result.access_token;

しかし、行に無効なJSON文字列というエラーが表示されますdynamic result = fb.Get("oauth/access_token",sParams);

私はここで何をしているのですか?

4

2 に答える 2

4

次のコードを使用します。

        var client = new FacebookClient(Short_lived_accessToken);

        dynamic result = client.Post("oauth/access_token", new
        {
            client_id = My_App_ID,
            client_secret = My_App_Secret,
            grant_type = "fb_exchange_token",
            fb_exchange_token = Short_lived_accessToken
        });

        Response.Write("Long live access token: [" + result.access_token + "]");

それが役に立てば幸い。

于 2012-09-14T00:26:25.350 に答える
1

エンドポイントから得られる戻り値は、単純にJSON ではなく、フォーム内のプレーン テキストです

access_token=new_long-lived_access_token&expires=5130106

そのため、何らかの方法で (?)、結果が JSON ではないことをアプリケーションに伝える必要があります。または、FacebookClient::Get が常に応答が JSON であることを期待している場合は、別のメソッドを使用して要求を行う必要があります。

于 2012-09-12T09:23:10.607 に答える