【问题标题】:Azure Function Generic WebhookAzure 函数通用 Webhook
【发布时间】:2017-09-17 18:15:58
【问题描述】:

使用 Visual Studio 2017,我创建了一个带有通用 WebHook 的函数应用程序:

public static class FunctionWebHook
    {
        [FunctionName("FunctionWebHook")]
        public static async Task<object> Run([HttpTrigger(WebHookType = "genericJson")]HttpRequestMessage request, TraceWriter log)
        {
            log.Info($"Webhook was triggered!");

            string jsonContent = await request.Content.ReadAsStringAsync();

            log.Info(jsonContent);

            return request.CreateResponse(HttpStatusCode.NoContent);
        }
    }

代码只不过是默认模板而已。我将它部署到我的 Azure 帐户并尝试调用它。我使用门户上的“获取函数 url”链接来获取正确的 URL,这包括 code 和 clientId 参数。当我尝试将 JSON 发布到函数(内容类型设置为 application/json)时,我收到 400 Bad Request:

{"Message":"The 'code' query parameter provided in the HTTP request did not match the expected value."}

我检查了代码参数,它是正确的。我也多次重新创建了函数应用程序,但是我继续收到错误。当我使用 Portal 的 Run 命令调用该函数时,它会正确执行。

以前有人遇到过这个问题吗?

【问题讨论】:

标签: c# azure azure-functions


【解决方案1】:

所以我使用 Restlet Client 进行任何 API 工作,但它似乎有一个奇怪的问题。我从门户复制了默认(主机密钥)并将 URL 粘贴到 Restlet 客户端中,由于某种原因,代码参数的最后一个“==”被删除了。我使用 Postman 尝试了该请求,该请求成功了!

感谢所有的cmets和回复!

【讨论】:

    【解决方案2】:

    您选择哪个密钥来验证您的请求?有 3 种类型的键。请选择默认(功能键)并使用生成的 URL 和键。我自己测试了一下,功能键可以通过服务器的验证。

    更多功能键和主机键的信息,请参考以下链接。

    Azure Function WebHook API Keys

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多