Привет, ребята, у меня есть телеграмм-бот, и я пытаюсь отправить сообщение на свой канал. я хочу планировать и отправлять свои сообщения в определенное время. я пытаюсь использовать 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);
}
и вот ошибка, которую я получил, он не может распознать мой канал:
[15-Mar-2019 07:13:01 UTC] PHP Warning: curl_setopt() [function.curl-setopt]: Unable to access branio_ir in /home1/derakhtc/public_html/telegramBot/HafezederakhshanBot/telegram.php on line 85
строка 85 — curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
мой бот полный админ на моем канале спасибо за помощь
@Akintunde-Rotimi $post_fields = array( 'chat_id' => "$channelID", 'text' => $postText );
Вы пытались исправить права доступа к папке?
@Akintunde-Rotimi - это массив из того, что я хочу отправить в Telegram API
@Guga Nemsitsveridze у меня нет проблем с папками
Следовательно, это дает вам ошибку, что что-то Unable to access
может иметь проблемы с разрешениями
Убедитесь, что у папки есть права 777.
нет, что-то является идентификатором моего общедоступного канала, он говорит, что не может получить к нему доступ, проблема в том, что эта ошибка возникает, когда я использую задание cron, но все в порядке, когда я вызываю свой файл cronjob непосредственно из браузера.
{"ok":false,"error_code":400,"description":"Неверный запрос: текст сообщения пуст"} я получил это сейчас, я отправляю текстовый параметр, но он возвращает мне это
Что в
$post_fields
??