我想通过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);
我的进度:
- 我通过
@botfather
做了一个new bot
,得到了一个token
. - 然后用我的
telegram
向这个bot
发送了一条消息. - 我在
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
错误,请阅读此内容。