Tại sao webhook của tôi không hoạt động? Tôi không nhận được bất kỳ dữ liệu nào từ API bot điện tín. Dưới đây là lời giải thích chi tiết các vấn đề của tôi:Gặp sự cố với webhook với Telegram Bot API
tôi đã SSL cert từ StartSSL, nó hoạt động tốt trên trang web của tôi (theo GeoCerts SSL checker), nhưng vẫn có vẻ như webhook tôi để Telegram Bot API không hoạt động (mặc dù nó nói rằng webhook đã được thiết lập tôi không nhận được bất kỳ dữ liệu nào).
Tôi đang làm cho một webhook để kịch bản của tôi trên trang web của tôi dưới hình thức này:
https://api.telegram.org/bot<token>/setWebhook?url=https://mywebsite.com/path/to/giveawaysbot.php
tôi nhận được văn bản này trong phản ứng:
{"ok":true,"result":true,"description":"Webhook was set"}
Vì vậy, nó phải được làm việc, nhưng nó thực sự doesn 't.
Đây là mã kịch bản của tôi:
<?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);
}
?>
Tôi không thực sự nhận được bất kỳ dữ liệu đến $ cập nhật. Vì vậy, webhook không hoạt động. Tại sao?
Có thể liên quan đến việc không nhận được bất kỳ dữ liệu nào, bạn nên thực hiện 'json_decode ($ update, true)' để lấy dữ liệu dưới dạng mảng, thay vì 'stdClass'. – ixchi
ixchi, 'json_decode (cập nhật $, đúng)' không thay đổi gì, vẫn không hoạt động: \ – markelov
Bạn có chắc chắn rằng bạn đang thực sự nhận được webhook không? Nó hoạt động chính xác cho tôi. – ixchi