Azure Function Generic Webhook

时间:2017-09-17 18:15:58

标签: c# azure azure-functions

使用Visual Studio 2017,我创建了一个带有Generic 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,其中包括code和clientId参数。当我尝试将JSON POST到函数(内容类型设置为application / json)时,我收到400 Bad Request:

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

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

之前有没有人遇到过这个问题?

2 个答案:

答案 0 :(得分:1)

所以我使用Restlet Client进行任何API工作,看起来它有一个奇怪的问题。我从Portal中复制了默认(主机密钥)并将URL粘贴到Restlet Client中,由于某种原因,删除了代码参数的最后一个'=='。我使用Postman尝试了请求并且该请求有效!

感谢所有评论和回复!

答案 1 :(得分:0)

您选择使用哪个密钥验证您的请求?键有3种类型。请选择默认值(功能键)并使用生成的URL和密钥。我测试了它,功能键可以从服务器传递验证。

enter image description here

有关功能键和主机键的更多信息,以下链接供您参考。

Azure Function WebHook API Keys