Обнаружение новых сообщений в канале и пересылка его на другой канал - бот telegram с помощью setwebhook - php code - PullRequest
0 голосов
/ 30 декабря 2018

я хочу определить идентификатор записи нового сообщения в канале телеграммы с ботом telegram, который является администратором в канале, и переслать новое сообщение на другой канал, который я уже указал

я пытался получить идентификатор сообщения, которое перенаправил ботдля канала с этим php кодом ниже

function bot($method, $datas = [])
{
    $url = "https://api.telegram.org/bot" . API_KEY . "/" . $method;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $datas);
    $res = curl_exec($ch);
    if (curl_error($ch)) {
        var_dump(curl_error($ch));
    } else {
        return json_decode($res);
    }
}

$msg_id = bot('ForwardMessage', [    
'chat_id' => $channel,    
'from_chat_id' => $chat_id,    
'message_id' => $message_id    
])->result->message_id;  

но мне нужен php код, который может проверять канал, если новое сообщение отправляется другими администраторами, робот находит идентификатор сообщения и пересылает сообщение на другой канал, который я уже указал в двухКаналы, которыми робот является admin

Я читаю api-бот telegram, там говорится о том, как можно получить пост-канал по этой ссылке: https://core.telegram.org/bots/api#update

В моем боте я использую setwebhook, который является одним из $ channel_postили $ chid верен?

$update = json_decode(file_get_contents('php://input'));
$channel_post = $update->message->channel_post;
$chid = $update->channel_post->message->message_id;

1 Ответ

0 голосов
/ 31 декабря 2018

следуйте этому коду:

if( isset($update->channel_post) && $update->channel_post )
{

  if(isset($update->channel_post->text) && $update->channel_post->text)
  {
      $apiToken = "my_bot_api_token";

      $data = [
          'chat_id' => '@targetChannel',
          'text' => $update->channel_post->text
      ];





file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) );
}


}
...