0

我正在尝试通过 Web 应用程序从内部进行 facebook open graph api 调用。我正在使用这样的 C# 请求发出 Web 请求。

string token = "q2Fe0utty5gzCasPL23...";
string url = "https://graph.facebook.com/me?access_token=" + 
    HttpUtility.UrlEncode(token) +"&response_type=id";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream receiveStream = response.GetResponseStream();
StreamReader readStream = newStreamReader(receiveStream,Encoding.UTF8);
string responseData = readStream.ReadToEnd();

_context.SaveChanges();

由于令牌中有一些特殊字符(+、/、==),因此我使用 HttpUtility.UrlEncode(token) 对其进行了编码,但仍然出现以下错误。

远程服务器返回错误:(400) 错误请求。

我该如何解决这个错误。我通过在堆栈溢出中看到一些响应来完成上述操作,但仍然出现错误。我哪里出错了?

4

1 回答 1

2

由于令牌有一些特殊字符(+,/,==)

这听起来很奇怪……通常访问令牌由字母、数字和管道符号组成。

如果您使用无效的访问令牌(不是过期,而是根本无法解码的令牌)发出请求,那么您将收到 400 响应。

所以请在调试工具中检查您的令牌,https://developers.facebook.com/tools/debug

于 2012-10-05T12:47:55.400 回答