【问题标题】:telegram api send message return nothing电报API发送消息返回什么
【发布时间】:2018-04-09 01:25:32
【问题描述】:

我想通过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 时,它可以找到,但是当我想动态地执行此操作时,它什么也没给我,只是 echo sending message to 88132232 没有错误。我搜索并阅读了许多主题但没有成功,知道我错过了什么吗?在使用curl 之前,我使用了get_file_contents,但它也不起作用。

【问题讨论】:

    标签: php curl telegram telegram-bot php-telegram-bot


    【解决方案1】:

    你设置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
    

    【讨论】:

    • 所以我做到了,但结果是:sending message to 88132232 sending message to 88132232。仍然没有发送任何内容
    • @Padideh 尝试从@RawDataBot获取chat_id
    • .message.from.id字段
    • 你的意思是我的聊天ID错了?但正如我所说,它适用于手动 url。但我是通过@RawDataBot 完成的,它与88132232 相同。问题是它没有通过curl发送消息
    【解决方案2】:

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

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

    大多数问题是SSL。得到你的错误并返回。但正如@Sean 所说,我测试了您的代码,您的代码运行良好,请在php fiddle 网站上尝试。如果您收到SSL 错误,请阅读this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-19
      • 2018-02-04
      • 2020-08-12
      • 2017-09-01
      • 2016-06-02
      • 2014-01-26
      • 2015-07-31
      • 2016-03-11
      相关资源
      最近更新 更多