电报 API 发送消息不返回任何内容



我想通过telegram api发送消息,但它不起作用,并且不发送任何消息。 这是我到目前为止尝试的:

function sendTelegram($chatID, $msg) {
echo "sending message to " . $chatID . "n";
$token = "botxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$getUpdate = "http://api.telegram.org/" . $token . "/getUpdates";
$url = "https://api.telegram.org/" . $token . "/sendMessage?chat_id=" . $chatID;
$url = $url . "&text=" . urlencode($msg);
$ch = curl_init();
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true
);
curl_setopt_array($ch, $optArray);
$result = curl_exec($ch);
curl_close($ch);
}
$msg = "Hi";
$chatID = "88132232";
sendTelegram($chatID, $msg);

我的进度:

  1. 我通过@botfather做了一个new bot,得到了一个token.
  2. 然后用我的telegram向这个bot发送了一条消息.
  3. 我在getUpdates得到了chat id.

https://api.telegram.org/botxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/getUpdates

并通过以下方式send message

https://api.telegram.org/botxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/sendMessage?chat_id=88132232&text=hi

当我转到此 url 时,它可以找到,但是当我想动态执行此操作时,它不会给我任何东西,只是回显sending message to 88132232没有错误。我搜索并阅读了许多主题,但没有成功,知道我错过了什么吗?在使用curl之前,我用了get_file_contents但它也没有用。

你设置了CURLOPT_RETURNTRANSFER

CURLOPT_RETURNTRANSFER:TRUE 将传输作为返回值 curl_exec() 的字符串返回,而不是直接输出。

请在sendTelegram()函数中返回$result,并回显它。

function sendTelegram($chatID, $msg) {
    // ...
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
$result = sendTelegram($chatID, $msg);
echo $result;   // JSON String

可能你有error但在curl你应该得到这样的错误curl

if(curl_error($ch)){
    echo 'error:' . curl_error($ch);
}

大多数问题是SSL。 得到你的错误并返回。 但是我测试了你的代码,正如@Sean所说,你的代码工作正常,php fiddle网站上尝试一下。 如果您收到SSL错误,请阅读此内容

相关内容

  • 没有找到相关文章

最新更新