我使用JSDK为我的脸书应用验证用户身份。 我正在获取访问令牌,但它会在半小时内到期。 那么如何才能获得长期访问令牌?
我使用的代码是:
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;
但它在行dynamic result = fb.Get("oauth/access_token",sParams);
我在这里做错了什么?
答案 0 :(得分: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 + "]");
希望它有所帮助。
答案 1 :(得分:1)
您将从端点获得的返回只是不是 JSON,而只是表单中的纯文本
access_token=new_long-lived_access_token&expires=5130106
所以你必须以某种方式(?)告诉你的应用程序,结果不是JSON;或者你可能必须使用不同的方法来发出请求,如果FacebookClient :: Get总是希望答案是JSON。