Facebook的网络挂接应用程序的创建由于未能“无法核实所提供的网址”
无法在Facebook上创建由于错误“无法验证提供的URL”Facebook的网络挂接应用程序的创建由于未能“无法核实所提供的网址”
- 的URL,鉴于网络挂接广告应用程式回调正在从浏览器的罚款HTTPS端口443
-
servlet代码到收到来自网络挂接后调用如下
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("**************Entering Callback Servlet**************************"); Map<String, String[]> parametersMap = request.getParameterMap(); if (parametersMap.size() > 0) { if (request.getParameter("hub.mode").equals("streamInit")) { System.out.println("Verify Token: " + request.getParameter("hub.verify_token")); System.out.println("Challenge number:" + request.getParameter("hub.challenge")); String responseToClient = request.getParameter("hub.challenge"); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().write(responseToClient); response.getWriter().flush(); response.getWriter().close(); response.getWriter().append("Fetch-Mode").append(request.getParameter("hub.mode")); response.getWriter().append("App Verify Token:").append(request.getParameter("hub.verify_token")); response.getWriter().append("App Challenge No").append(request.getParameter("hub.challenge")); System.out.println("**************Callback Successful**************************"); } //response.getWriter().append("Served at: ").append(request.getContextPath()); }else{ System.out.println("**************Not an Facebook POST**************************"); } System.out.println("**************Exiting Callback Servlet**************************"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
需要帮助,我在这里失踪。
Facebook想要指出确切的文件(例如:callback.php),你可以用mod重写来解决这个问题。只需提及它,https://证书必须是有效的并且由公共机构签名(例如:comodo)。
好的。我没有签名的SSL证书。有没有什么办法可以实时提供webhook以外的内容? –
@KarthickRadhakrishnan no。但你可以得到一个约8美元的签名sll证书。我找到的最便宜的是[namecheap](https://www.namecheap.com/security/ssl-certificates/comodo/positivessl.aspx) –
谢谢Markus。 –
您可以使用https://ngrok.com/将https Webhook发送到本地主机开发服务器。
if (request.getParameter("hub.mode").equals("streamInit"))
到
if (request.getParameter("hub.mode").equals("subscribe"))
我并不需要在确切文件指向它。
虽然你不是真的在使用IP'0.0.0.0',对吗?您不能为此使用本地IP地址,它必须是可公开访问的URL。 (而且我不确定IP地址是否可以工作 - 在大多数情况下,Facebook需要具有主机名的URL。) – CBroe
不,我不是。使用0.0.0.0。我有一个公共URL并且它可以访问。但是我没有签名的SSL证书,正如markus所说的那样。我现在处于死胡同:) –
是的,的确如此,现在您需要提供一个HTTPS网址。获得有效的SSL证书的便宜而简单的方法是https://letsencrypt.org/,但它要求您的服务器一起玩(让您使用其客户端来处理域验证。)如果这不是一个选项, https://www.startssl.com/也为个人提供免费证书。 – CBroe