我正在使用以下代码来检索facebook accessToken
string url = "https://graph.facebook.com/oauth/access_token?" +
"client_id={0}" +
"&redirect_uri={1}" +
"&client_secret={2}" +
"&code={3}";
url = string.Format(url, clientId, redirectUri.EncodeUrl(), clientSecret, code);
//Create a webrequest to perform the request against the Uri
WebRequest request = WebRequest.Create(url);
try
{
//read out the response as a utf-8 encoding and parse out the access_token
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
//string urlRedirects = response.ResponseUri.ToString();
Encoding encode = Encoding.GetEncoding("utf-8");
if (stream != null)
{
StreamReader streamReader = new StreamReader(stream, encode);
string accessToken = streamReader.ReadToEnd().Replace("access_token=", "");
streamReader.Close();
response.Close();
return accessToken;
}
}
}
}
catch
{
return null;
}
但是我不断收到这个含糊不清的错误消息
{
"error": {
"message": "Error validating verification code.",
"type": "OAuthException",
"code": 100
}
}
我检查了代码100“无效参数”对我来说意义不大。
是谁有类似的问题?答案 0 :(得分:4)
检查您是否在网址中添加了正确的代码 例如
http://www.xyz.com/?code=AQC399oXame3UKmoAMYnqkZOEXPDNa8ZUFEY9sc6I4YNQnNT-ZgHzpMNnQVZrCUBZVqJRIB1QrXC5xW58_8MNIgQol_PaQvYssUM8OiKjSY5aoqGLBMuCeeHsSqP_mRTd1xiK0iretZcXwMm_27lFYrWFw345Mxod_lfJuB8zI13E8wJUQiArXW_ZlGLNcyxh20#_=_
代码必须
code = AQC399oXame3UKmoAMYnqkZOEXPDNa8ZUFEY9sc6I4YNQnNT-ZgHzpMNnQVZrCUBZVqJRIB1QrXC5xW58_8MNIgQol_PaQvYssUM8OiKjSY5aoqGLBMuCeeHsSqP_mRTd1xiK0iretZcXwMm_27lFYrWFw345Mxod_lfJuB8zI13E8wJUQiArXW_ZlGLNcyxh20
代码最后不应包含以下内容
#_=_
如果上面没有解决问题
2。 redirect_uri必须以/
redirect_uri=http://www.xyz.com/
以下几次提到上述错误
redirect_uri=http://www.xyz.com
我也要确定
Facebook上的应用程序和带有Facebook登录的网站设置有相同的地址
例如http://www.xyz.com/
答案 1 :(得分:1)
您需要将用户发送到Facebook登录页面以获得有效的code
。然后,该代码应用于获取用户的access_token
。
答案 2 :(得分:1)
我的错误消息400,当我的应用程序ID和秘密错误时(我搞砸了开发和生产ID和秘密)。
修复它们(同时注意正确的主机)修复此问题。