我正在建立一个新的登录名,以便从Facebook业务页面以及Messenger的表格访问中获取帖子。因此,我在应用程序中设置了一个Facebook登录名。然后facebook发回我错误消息
我已经成功将登录代码输入到我的重定向URL中。但是,在回调函数中,我尝试获取Facebook访问令牌,并堆叠在一起 我已经检查了我的Facebook重定向URL设置以及我的代码,我很确定Facebook设置上的重定向URL和我的应用程序都是相同的,谢谢您的帮助
[HttpGet, Route("facebookCallBack"), AllowAnonymous]
public async Task<IHttpActionResult> facebookCallBack([FromUri]string code)
{
string facebookAppId = ConfigurationManager.AppSettings["FacebookAppId"];
string facebookAppSecret = ConfigurationManager.AppSettings["FacebookAppSecret"];
string fbBaseUrl = ConfigurationManager.AppSettings["FacebookApiRootUrl"];
var redirectUrl = "{my url}";
var url = fbBaseUrl + "oauth/access_token?"
+ "client_id=" + facebookAppId
+ "&client_secret=" + facebookAppSecret
+ "&code=" + code
+ "&redirect_uri="+ redirectUrl;
var client = new HttpClient();
var request = await client.GetAsync(url);
var strContent = await request.Content.ReadAsStringAsync();
return Json(new { data = strContent , url= Request.RequestUri.AbsoluteUri , urlx = redirectUrl });
}
我希望获得实际访问令牌的输出,但是facebook给我“验证码错误。请确保您的redirect_uri与在OAuth对话框中使用的相同”。
答案 0 :(得分:0)
对不起朋友,我犯了一个愚蠢的错误,我使用了myapp.mydomain.com/facebookCallBack而不是myapp.mydomain.com/facebookcallback,我认为浏览器和api会自动将大写字母转换为小写字母,即使我以为Facebook不会检查重定向URL的大小写。我错了,facebook api将检查重定向URL的精确匹配,并且重定向区分大小写。