【问题标题】:Connect facebook Webhook with asp.net application将 facebook Webhook 与 asp.net 应用程序连接起来
【发布时间】:2020-09-15 05:09:49
【问题描述】:

我正在尝试将 facebook webhook 连接到 asp.net 应用程序,但我收到“无法验证 URL。响应与挑战不匹配错误。

但是我可以从我的 .net 应用程序中看到响应是正确的,但在 facebook 中它显示为前缀 '\ufeff\' Here is the error I am getting

我正在使用以下代码向回调 url 发送响应:

        var challenge = Convert.ToString(Request.QueryString["hub.challenge"]);

        var verifyToken = Request.QueryString["hub.verify_token"];


        if (verifyToken == "abcxyz123")
        {

            Response.Write(challenge);
        }

非常感谢任何帮助。 谢谢

【问题讨论】:

  • 这是一个 BOM,字节顺序标记。从脚本文件中删除 BOM,将它们存储为没有 BOM 的 UTF-8。
  • 我使用新的 UTF8Encoding(false) 从 .net 应用程序中删除 BOM,但是当 Facebook 发起的回调 url 捕获响应时,PHP 添加了这个字节顺序标记。我检查了没有 BOM 的字符串。
  • 什么,PHP 在哪里发挥作用?
  • 我们必须在 Facebook 中设置回调 url 和访问令牌。Facebook 向我的应用程序发送 https 请求。根据请求,上面的代码被执行,facebook 接收到上面代码中返回的字符串:Resonse.write(challenge) .有问题的屏幕截图在将 webhook 连接到我的应用程序时进入 facebook。我指的是这个链接:developers.facebook.com/docs/marketing-api/guides/lead-ads/… 唯一的事情是我想连接到 asp.net 应用程序,但这里是用 PHP 给出的。
  • 好的,他们的例子是在 PHP 中......但这与 your 应用程序有什么关系?

标签: .net facebook callbackurl


【解决方案1】:
    public HttpResponseMessage Webhook()
    {
        var response = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new StringContent(System.Web.HttpContext.Current.Request.QueryString["hub.challenge"])
        };
        response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");

        return response;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多