我有一个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或其他系统阻塞我的以太网插槽。
为什么没有调用Post回调? (我该如何解决?)
如何调试此问题以确定问题所在?
答案 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的帖子请求。