我有一个 Web 应用程序,它在 facebook 中配置为 Canvas Web 应用程序,并且还提供了一个移动 URL,其中移动特定页面由 Web 服务器提供。应用程序已经运行了大约 3 个月,从上周开始(我相信问题是上周开始的,过去 3 个月没有应用程序部署),当我从我的 Android 手机,从 native 中的应用程序快捷方式访问该应用程序时android facebook 应用程序,facebook 抛出以下错误
API错误代码:196 API 错误描述:无法重定向到移动设备上的桌面 Web Canvas URL。 错误消息:redirect_uri 不属于此应用程序。
我可以看到请求发送到我的网络服务器,在我将重定向网址发送到移动设备后,它会抛出上述错误。
由于没有代码更改,我对这个新错误有点困惑,谷歌搜索这个 api 错误号没有返回任何命中,除了一个日本网站,上周有人提到了这个错误,但不要没有看到任何解决方案。
错误消息“无法重定向到桌面网络 Canvas ...”似乎是不言自明的,但我无法弄清楚出了什么问题,特别是因为之前同样的情况也有效,除非 FB 更改了他们的任何内容在我的应用程序配置中引入新问题或暴露现有问题的代码。
最佳答案
为此浪费了 1 天时间,尝试阅读 2 个日语(未翻译)博客..然后我找到了方法!
在应用程序设置中,请勿为移动应用程序输入相同的网址!
示例:
normal canvas or website url: https://www.stackoverflow.com/
(这会自动将您带到 https://www.stackoverflow.com/index.php )
mobile url: https://www.stackoverflow.com/mobile/
(这会自动将您带到 https://www.stackoverflow.com/mobile/index.php )
然后在您的托管根文件夹中创建一个“移动”文件夹。
现在移动文件夹中的唯一区别是重定向 uri。
我正在使用 url 重定向,这是 facebook 所建议的。
https://developers.facebook.com/docs/reference/dialogs/oauth/
关键:确保您的重定向 uri 不是 Canvas 地址,而是网络服务器地址!
wrong redirect uri: https://apps.facebook.com/mobile/yourappname/
correct redirect uri: https://yourwebsite.com/mobile/
这会让 facebook 认为它是一个临时移动网站!一切都会按预期进行!
关于Facebook 移动网络应用程序开始抛出 API 错误代码 :196,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9658865/