2

我已使用 JSDK 为我的 facebook 应用程序验证用户身份。我正在获取访问令牌,但它会在 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;

但它给了我错误Invalid JSON String at linedynamic 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 回答