如何使用 PHP 每分钟向电报机器人发送通知?

Posted

技术标签:

【中文标题】如何使用 PHP 每分钟向电报机器人发送通知?【英文标题】:How can I send notifications every minute to the telegram bot with PHP? 【发布时间】:2019-10-23 12:19:41 【问题描述】:

场景如下,我想在 Telegram 频道上每分钟发送消息或通知(没有用户发送的命令)。

碰巧我每次输入 URL 并发送消息时都可以发送消息,但我希望它每分钟自动发送(无需输入 URL)。我不知道该怎么做,提前谢谢。

<?php $botToken="<<BOT-TOKEN>>" ; $website="https://api.telegram.org/bot" .$botToken; $chatId="337957895" ; //**===>

注意:这个 chatId 必须是一个人的 chat_id,而不是另一个机器人 chatId !!!** $params=[ 'chat_id'=>$chatId, 'text'=>'这是我的消息!!!' , ]; $ch = curl_init($website . '/sendMessage'); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, ($params)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); ?>

我仍然必须输入 URL 才能发送消息... https://bot.unpixelmas.com/bot.php

【问题讨论】:

听起来你想要一个 cron 作业 我同意,您可以在 cron 作业中使用 Curl 或 wget。 【参考方案1】:

如果我们说你要输入的网址是&lt;YOUR CUSTOM URL&gt;,那么你可以制作一个PHP文件并使用以下代码:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '<YOUR CUSTOM URL>',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
));

$response = curl_exec($curl);

curl_close($curl);

?>

然后使用crontab -e 命令您可以打开cronjob 文件并将您的PHP 文件添加为记录:

* * * * *  <PHP bin path> <your PHP source file path>

【讨论】:

【参考方案2】:

如果 URL 始终相同,则应使用 cronjob 并将其设置为每分钟打开一次该 URL。

【讨论】:

以上是关于如何使用 PHP 每分钟向电报机器人发送通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用我的电报机器人使用他们的用户名向某人发送消息

PHP电报机器人:从id.txt向所有用户发送消息

如何限制对电报机器人的访问

我如何以编程方式向@BotFather发送消息?

PHP:电报机器人:在短信中插入换行符

如何从 SDK/框架向父应用发送推送通知?