不会调用Facebook取消授权回调

时间:2011-12-01 11:43:29

标签: facebook api callback authorization

我有一个FB应用程序,当我作为取消授权回调URL输入我的开发框地址时,在FB上删除应用程序后,该框会被请求显示:

POST /facebook/deauthorize HTTP/1.1
Host: bashman.org
Accept: */*
Content-Length: 261
Content-Type: application/x-www-form-urlencoded
Connection: close

fb_sig_uninstall=1&fb_sig_locale=de_DE&fb_sig_in_new_facebook=1&fb_sig_time=1322732591.2685&fb_sig_added=0&fb_sig_user=1476224117&fb_sig_country=de&fb_sig_api_key=e39a74891fd234bb2575bab75e8f&fb_sig_app_id=32352348363&fb_sig=f6bbb27324aedf337e5f0059c4971

(这里的钥匙是假的)

BUT!当我在取消授权回调URL中输入我的生产箱URL时,永远不会发出POST请求。用Tcpdump测试它。我的生产机器没有要求,为什么?

我用mtr检查了从生产箱到请求来自的IP地址的路由,一切正常,丢失了0%的数据包。

主机名端口和路径正确,经过1k次测试,没有防火墙,IDS或其他系统阻塞我的以太网插槽。

  1. 为什么没有调用Post回调? (我该如何解决?)

  2. 如何调试此问题以确定问题所在?

2 个答案:

答案 0 :(得分:5)

您可以尝试使用facebook URL Debugger,看看facebook的服务器是否能够访问您的回调网址...
查看facebook能够检索的信息可能有助于您调试此问题。

答案 1 :(得分:0)

我和NGINX有同样的问题,经过几个小时的调试后我在NGINX documentation找到了这个解决方案:

  

有些浏览器可能会抱怨由知名人士签名的证书   证书颁发机构,而其他浏览器可以接受证书   没有问题。发生这种情况是因为签发机构签署了   使用不是的中间证书的服务器证书   出现在知名可信证书的证书基础上   与特定浏览器一起分发的权限。在这   在这种情况下,权威机构提供了一系列链式证书   应该连接到签名的服务器证书。服务器   证书必须出现在链接证书之前   合并文件:

$ cat www.example.com.crt bundle.crt > www.example.com.chained.crt
     

生成的文件应该在ssl_certificate指令中使用:

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.chained.crt;
    ssl_certificate_key www.example.com.key;
    ... 
}

简而言之,您只需要连接证书和捆绑包,并将结果用作ssl_certificate。

我现在收到Facebook的帖子请求。