gpt4 book ai didi

api - 与 Telegram Bot API 的 webhook 有问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:20 27 4
gpt4 key购买 nike

为什么我的 webhook 不工作?我没有从电报机器人 API 获得任何数据。这是我的问题的详细解释:

我从 StartSSL 获得了 SSL 证书,它在我的网站上运行良好(根据 GeoCerts SSL checker ),但似乎我的 Telegram Bot API webhook 仍然不起作用(尽管它说webhook 已设置我没有得到任何数据)。

我正在以这种形式在我的网站上为我的脚本创建一个 webhook:

https://api.telegram.org/bot<token>/setWebhook?url=https://mywebsite.com/path/to/giveawaysbot.php

我收到以下回复:

{"ok":true,"result":true,"description":"Webhook was set"}

所以它一定在工作,但实际上没有。

这是我的脚本代码:

<?php 

ini_set('error_reporting', E_ALL);

$botToken = "<token>";
$website = "https://api.telegram.org/bot".$botToken;

$update = file_get_contents('php://input');
$update = json_decode($update);

print_r($update); // this is made to check if i get any data or not

$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];


switch ($message) {
case "/test":
sendMessage($chatId,"test complete");
break;
case "/hi":
sendMessage($chatId,"hey there");
break;
default:
sendMessage($chatId,"nono i dont understand you");
}


function sendMessage ($chatId, $message) {
$url = $GLOBALS[website]."/sendMessage?chat_id=".$chatId."&text=".urlencode($message);
file_get_contents($url);
}

?>

我实际上并没有收到 $update 的任何数据。所以 webhook 不工作。为什么?

最佳答案

再等一会,为什么您的 webhook 不起作用

在我的例子中,原因在于 allowed_updates webhook 参数。

通过调用:

https://api.telegram.org/bot<your_bot_token>/getWebhookInfo

可以看到

{
"ok": true,
"result": {
"url": "<your webhook url should be here>",
"has_custom_certificate": false,
"pending_update_count": 0,
"max_connections": 40,
"allowed_updates": [
"callback_query"
]
}
}

这意味着,您的机器人无法对您的短信使用react,并且您将不会收到任何 webhooks!

您可以注意到,“allowed_updates”包含数组。因此,目前它只会对内联按钮事件使用react(作为键盘布局传递!)。根据setWebhook文档中,allowed_updates 是一个“可选”参数。

要开始接收短信,您需要将“消息”添加到您的“allowed_updates”属性。为此,只需再次设置您的 webhooks 并将其添加到查询中。喜欢这里:

https://api.telegram.org/bot<your_token>/setWebHook?url=<your_url>&allowed_updates=["callback_query","message"]

您会收到类似“url already added”的消息,但请放心,即使在这种情况下,allowed_updates 也会更新。只需尝试将您的消息输入机器人并测试您的 webhook。

就是这样,现在,telegram 将向您发送给机器人的每条直接消息发送 webhook。希望,它可以帮助某人。

关于api - 与 Telegram Bot API 的 webhook 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303110/

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