簡體   English   中英

消息發送 Telegram bot (PHP)

[英]Message sending Telegram bot (PHP)

我知道問這樣的問題有點奇怪,但我正在嘗試用 PHP 編寫一個電報機器人。

機器人在一個頻道(例如頻道 A)中,我將在該頻道中發送消息,因此機器人將每 Y 分鍾將 X 條消息復制到另一個頻道(頻道 B)。

Example:

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

所以它會每小時從 A 到 B 復制 5 條消息......

誰能幫我寫個模板? 我想我可以配置 VPS 和 webhook 的東西(SSL 等)。

如果您需要每分鍾發送一條消息,並從 Telegram 回調中獲取消息,則需要閱讀有關隊列(zmq、redis、gearman 等)的信息。

  1. 創建守護進程。 這些是你的機器人。 他們可以從隊列中讀取消息並發送回調。
  2. 編寫控制器以從電報中獲取回調。 它可以接收消息並推送到隊列。
  3. 在 PHP 上安裝 Ev 或 Event 擴展。 (您可以使用reactphp,這是創建計時器的簡單解決方案)
  4. Bot1 創建計時器,並收聽消息。 如果我們有更多 5 條消息,計時器可以將消息推送到 Bot2 的隊列中。

你可以使用 reactphp/zmq、nrk/predis-async 來幫助你的任務

PS這是最簡單的解決方案。 但是您可以使用 pthreads(而不是創建守護進程)或使用簡單的套接字在 bot 中發送消息。

如果你想使用 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類的事情由你決定,我留給你自己。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM