使用c#调试访问令牌

时间:2012-11-29 15:57:08

标签: c# facebook facebook-c#-sdk

我想知道访问令牌何时到期

我正在使用httprequest并从包含链接的请求中获取响应:

https://developers.facebook.com/tools/debug/access_token?q=ACCESS_TOKEN

并搜索单词Expires并尝试读取包含(约在x分钟内)的括号之间的字符串

但是如果出现错误,可以帮助我吗?

string site = "https://developers.facebook.com/tools/debug/access_token?q=";
string token = "";
getRequest = (HttpWebRequest)WebRequest.Create(site + token);
string result;
HttpWebResponse res = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
result = sr.ReadToEnd();
}
Console.WriteLine(result);
Console.WriteLine(result.Contains("Expires"));

我收到错误我需要一个包含字符串“Expires”的结果并读取将到期的时间

1 个答案:

答案 0 :(得分:4)

您可以在https://developers.facebook.com/docs/howtos/login/debugging-access-tokens/

阅读文档

https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN

发出请求

input_token :要调试的访问令牌

access_token :您的应用访问令牌或来自该应用开发者的有效用户访问令牌。

如果您使用的是FB C#SDK(http://csharpsdk.org/)

var fb = new FacebookClient("app_access_token");
dynamic result = fb.Get("debug_token", new { input_token = "access_token_to_debug" });
var appId = result.data.app_id;
var isValid = result.data.is_valid;
var application = result.data.application;
var userId = result.data.user_id;
var expiresAt = result.data.expires_at;
var scopes = result.data.scopes;

您可以在http://csharpsdk.org/docs/faq了解如何获取应用访问令牌。我还更新了文档以包含调试访问令牌。

注意:当您从用户那里获得访问令牌时,请确保也存储过期日期,这样您就可以避免此次调用。