消息发送Telegram bot(PHP)

时间:2017-04-06 14:20:55

标签: php bots telegram

我知道问这样的事情有点奇怪,但我正在尝试使用PHP编写电报机器人。

机器人在一个频道(例如频道A),我将在该频道发送消息,因此机器人将复制 X消息到另一个频道(频道B),每隔Y分钟。

Example:

X = 5
Y = 60
Channel A = ID .....
Channel B = ID .....

因此,它每小时会从A到B复制5条消息......

请问有人给我写模板吗?我想我可以配置VPS和webhook的东西(SSL等)。

3 个答案:

答案 0 :(得分:2)

如果您需要每分钟发送一条消息,并从Telegram回调中获取消息,则需要阅读有关队列(zmq,redis,gearman等)的信息。

  1. 创建守护进程。这些是你的机器人。他们可以从队列中读取消息并发送回调。
  2. 编写控制器以从电报中获取回叫。它可以接收消息并推送到队列。
  3. 在PHP上安装Ev或Event扩展。 (你可以使用reactphp,它是创建计时器的简单解决方案)
  4. Bot1创建计时器,并监听消息。如果我们有5条消息,则定时器可​​以将消息推送到Bot2的队列中。
  5. 您可以使用reactphp / zmq,nrk / predis-async来帮助完成任务

    P.S。 这是最简单的解决方案。但您可以使用pthreads(而不是创建守护进程)或使用简单套接字在bot中发送消息。

答案 1 :(得分:2)

如果您想使用webhook,可以执行此操作。

编写这样的示例代码:

<?php
    $texts_from_other_channel = [];
    array_push($texts_from_other_channel , $update_array['message']['text']);
    $t_size = sizeof($texts_from_other_channel)
    for($i=0 ; $i < $t_size ; $i++){
        $post_prs = ['chat_id' => $channel_id , 'text' => $texts_from_other_channel[$i]];
        send_reply($sendmessag_url , $post_prs);
    end

?>

send_reply()函数或$update_array之类的其他事情由您决定,而我留给自己。

答案 2 :(得分:0)

如果您想使用Webhook,可以执行此操作。

编写这样的示例代码:

<?php
    $texts_from_other_channel = [];
    array_push($texts_from_other_channel , $update_array['message']['text']);
    $t_size = sizeof($texts_from_other_channel)
    for($i=0 ; $i < $t_size ; $i++){
        $post_prs = ['chat_id' => $channel_id , 'text' => $texts_from_other_channel[$i]];
        send_reply($sendmessag_url , $post_prs);
    end

?>

诸如send_reply函数或$ update_array之类的其他事情由您自己决定,我留给自己自己。