gpt4 book ai didi

c# - 如何将重定向 URL 注册到 webhook

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:35 25 4
gpt4 key购买 nike

您好,我一直在努力将重定向 url 注册到 Kaizal webhook(它来自 Microsoft 的聊天应用程序,就像一个 whatsapp),我创建了 asp.net API Controller 以在我的 Kaizala webhook 中注册它。我想要做的是,每当在 Kaizala Group 上创建消息或作业时,我的重定向 url 将捕获数据并将数据保存到我的数据库中。我想我已经满足了这里的所有要求 https://learn.microsoft.com/en-us/kaizala/connectors/webhookvalidaton ,我的 Get 方法已经从 Header 返回 validationToken。但是当我尝试注册我的重定向 URL 时它总是返回此错误 "message": "Callback URL couldn't be validated. StatusCode = InternalServerError",.

https://kaizala007.blog/2017/12/30/exploring-kaizala-webhooks/comment-page-1/#comment-3776从这个文档中,他说我需要同时支持 get 和 post 方法,已经添加了这两个方法,但我的 post 方法仍然没有做任何事情,只是返回状态码。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;

namespace KaizalaTestApi.Controllers
{

public class KaizalaCallbackController : ApiController
{
// GET: KaizalaCallback
[HttpGet]
public string Get()
{
string x = Request.Headers.GetValues("validationToken").FirstOrDefault().ToString();
return x;
}

[HttpPost]
public HttpResponseMessage Post()
{
//string validationToken = Request.Headers.GetValues("validationToken").FirstOrDefault().ToString();
//string data = new StreamReader(Request.Content).ReadToEnd();
string str = Request.Content.ReadAsStringAsync().Result;

return Request.CreateResponse(HttpStatusCode.OK);
}
}
}

为什么我会收到那个错误?我需要在我的 post 方法中做任何特定的事情才能让它工作吗?

最佳答案

您返回 int 并不是它起作用的事实。

第一次尝试失败,调用时出错

Request.Headers.GetValues("validationToken").FirstOrDefault().ToString();

很可能是空引用异常,因为您试图访问 header 中的 token ,而链接文档指出

Kaizala will generate a validation token and send a GET request to your webhook with a query parameter “validationToken”.

强调我的

在更新使用中避免了

HttpContext.Request.Query["validationToken"]

我建议将语法更新为

[HttpGet]
public IActionResult Get() {
var validationToken = Request.Query["validationToken"];
return Content(validationToken);
}

当然,您可以重构为预期的查询字符串参数添加验证代码。

我提出以上建议是因为不能保证 token 将是基于文档的有效 int。即使是这样,如果他们真的不再使用整数作为标记,这种方法也会更加灵活。

要求简单说明

Your service is supposed to return the validation token (received in request) in the response body as a plain-text

有了它,只准确返回发送的内容。不要尝试对其进行任何更改。

关于c# - 如何将重定向 URL 注册到 webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com