Facebook取消授权回调不被调用[重复]
Posted
技术标签:
【中文标题】Facebook取消授权回调不被调用[重复]【英文标题】:Facebook deauthorize callback is not called [duplicate] 【发布时间】:2014-10-05 07:21:37 【问题描述】:我开发了一个 Facebook 应用程序(一个处于“开发模式”的游戏),由一个网络客户端(Facebook 画布)和一个移动客户端(android 应用程序)使用。我还有一个 REST API(使用 Laravel 开发),它允许客户端和 Facebook API 之间的交换。该 API 可通过 Internet(不是 localhost)访问。
我的目标是检测用户何时卸载我的 Facebook 应用。
Facebook documentation 说:
人们无需交互即可通过 Facebook.com 卸载应用程序 与应用程序本身。为了帮助应用检测何时发生这种情况,我们 允许他们提供将被 ping 的取消授权回调 URL 每当发生这种情况。
您可以通过应用仪表板启用取消授权回调。去吧 到您的应用程序,然后选择设置菜单,最后选择高级 标签。为取消授权回调 URL 提供了一个文本字段。
每当您的应用程序的用户取消授权时,该 URL 将被发送 包含签名请求的 HTTP POST。阅读我们的解析指南 签名请求以查看如何对其进行解码以找出用户 ID 触发了回调。
此 URL 的 Laravel 路由接受 GET
和 POST
请求。我知道 Facebook 回调使用 POST
请求,但接受 GET
方法允许我使用“Open Graph Object Debugger”工具来测试我的 URL 是否可以被 Facebook 服务器访问(并且它是成功的)。
目前我使用的是自签名 SSL 证书(AES 128)。 Apache 是我的网络服务器(它将所有 HTTP 请求重定向到 HTTPS)。
我知道how to decodesigned_request
编码的POST参数(问题不在这里)。
问题:
当我删除应用程序(使用 Facebook 测试帐户)永远不会调用回调 URL。 Apache 日志(访问/错误)完全没有显示(而我可以通过 Open Graph Object Debugger 看到以前的访问)。
我已尝试使用已知 CA 提供的 SSL 证书通过另一个域更改回调 URL。同样的结果......这非常令人沮丧。
我不明白为什么。我错过了什么?
是我的网络服务器有问题吗? 是我的 SSL 证书有问题吗? 是我的 Facebook 应用配置有问题吗? 是因为我的 Facebook 应用处于开发模式吗? 这是 Facebook 错误?【问题讨论】:
我在同一个桶里。 Apache 日志什么也没显示。如果我 cpy URL 并将其扔到浏览器中,它就可以工作。这几天一直在挠头。好郁闷 这个问题太老了,无法评论,但如果其他人遇到同样的问题,请尝试在本地环境中调试应用程序,看看 facebook 是否真的点击了 URL,我会使用 ngrok 来设置本地应用程序并调试 HTTP 请求,Here is a demonstration 使用 ngrok 在本地计算机上进行 HTTP 回调调试。 @gigi2 很多人都报告了这一点。我认为这是Facebook方面的错误?我希望你不是从本地服务器调用它:) 不是本地服务器。我也认为这是 Facebook 的错误。 截至 2018 年,ngrok 不使用 Facebook。尝试联系您的服务器将因 kErrorAddressPrivate 错误而终止。请改用serveo.net。 【参考方案1】:根据我的个人经验,facebook 通知不可靠。 我开发了一些依赖 facebook 实时更新的应用程序,我遇到了以下问题:
-
更新/回调丢失
更新在几天后交付
当 facebook 更新 graph api 版本时,一些仍在旧版本上的应用程序可以工作,而您迁移的应用程序则无法工作。
有时要修复它,我会删除所有订阅并重新添加它们。 过了一段时间,我对此感到厌倦,现在我也拉动了实时更新,我也实现了日志记录和监控。
希望对你有帮助
【讨论】:
以上是关于Facebook取消授权回调不被调用[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Parse + Facebook 授权:已为 <facebook> 注册回调:com.parse.ParseFacebookUtils
用户取消应用请求后,Laravel 5 Socialite Facebook 登录错误处理回调