为什么get_access令牌端点无法识别Facebook重定向网址

时间:2019-06-14 22:36:24

标签: c# facebook-graph-api facebook-authentication

我正在建立一个新的登录名,以便从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对话框中使用的相同”。

1 个答案:

答案 0 :(得分:0)

对不起朋友,我犯了一个愚蠢的错误,我使用了myapp.mydomain.com/facebookCallBack而不是myapp.mydomain.com/facebookcallback,我认为浏览器和api会自动将大写字母转换为小写字母,即使我以为Facebook不会检查重定向URL的大小写。我错了,facebook api将检查重定向URL的精确匹配,并且重定向区分大小写。