почему мой бот telegram не отправляет сообщение на канал, когда я использую cronjob? - PullRequest
0 голосов
/ 15 марта 2019

Привет, ребята, у меня есть бот-телеграмма, и я пытаюсь отправить сообщение на мой канал.Я хочу планировать и отправлять свои сообщения в определенное время.я пытаюсь использовать cronjob и что-то происходит, когда я использую cronjob, он не отправляет сообщение, но когда я вручную вызываю этот URL (мой файл cronjob на хосте), он отправляет сообщение отлично. Вот мой код, я получаю сообщение из базы данных и отправляю его!!

while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
    $User_ID = $row["user_id"];
    $Caption = $row["body"] . "\n\n";
    $ChannelID = $row["channel_id"];

    $telegram->mSendMessageToChannel($ChannelID, $Caption);
    $telegram->mSendSimpleMessage($User_ID, "post sent.");

}

все хорошо, пока я не получу сообщение от БД, и все будет хорошо.вот мой метод mSendMessageToChannel

 public function mSendMessageToChannel($channelID, $postText)
{
    $url = 'https://api.telegram.org/bot' . $this->token . '/sendMessage';

    $post_fields = array(
        'chat_id' => "$channelID",
        'text' => $postText
    );

    $this->executeCURL($url, $post_fields);
}

, а вот мой метод mSendSimpleMessage

 public function mSendSimpleMessage($userId, $text)
{
    $url = "https://api.telegram.org/bot" . $this->token . "/sendMessage";
    $post_fields = array(
        "chat_id" => $userId,
        'text' => $text
    );
    $this->executeCURL($url, $post_fields);
}

, а вот мой метод executeCURL:

 public function executeCURL($url, $post_fields)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-Type:multipart/form-data"
    ));
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
    $output = curl_exec($ch);
}

и вот ошибка iон не может распознать мой канал:

[15-Mar-2019 07:13:01 UTC] PHP Предупреждение: curl_setopt () [function.curl-setopt]: невозможно получить доступ к branio_ir в / home1/derakhtc/public_html/telegramBot/HafezederakhshanBot/telegram.php в строке 85

строка 85 равна curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ post_fields);

мой бот - администратормой канал tnx за помощь

...