我想通过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);
我的进步:
new bot
制作了@botfather
并获得token
。bot
telegram
发送了一条消息
chat id
中获得getUpdates
。https://api.telegram.org/botxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/getUpdates
以及send message
来自:
https://api.telegram.org/botxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/sendMessage?chat_id=88132232&text=hi
当我转到这个网址时,它可以找到,但是当我想动态地执行此操作时,它不会给我任何回复sending message to 88132232
而没有错误。我搜索并阅读了很多主题,但没有成功,任何想法我错过了什么?在使用curl
之前我使用get_file_contents
但它也没有用。
答案 0 :(得分:0)
CURLOPT_RETURNTRANSFER:TRUE,将传输作为curl_exec()返回值的字符串返回,而不是直接输出。
请在$result
函数中返回sendTelegram()
,并回复它。
function sendTelegram($chatID, $msg) {
// ...
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$result = sendTelegram($chatID, $msg);
echo $result; // JSON String
答案 1 :(得分:0)
可能你有error
,但在curl
,你应该得到curl
这样的错误:
if(curl_error($ch)){
echo 'error:' . curl_error($ch);
}
大多数问题都是SSL
。得到你的错误并回来。但我测试了你的代码,正如@Sean所说,你的代码工作正常,在php fiddle
网站上试试。如果您收到SSL
错误,请阅读 this 。