[英]telegram bot with cron and PHP script
在 EC2 上
我有一個這樣的 crontab
* * * * * /usr/bin/php /opt/bitnami/apache2/htdocs/bot.php
bot.php 文件
1 <?php
2
3 exec( 'touch /opt/bitnami/apache2/htdocs/testCron.txt');
4
5 $botToken="xxxxxxxxxxxxx";
6
7 $website="https://api.telegram.org/bot".$botToken;
8 $chatId=123456;
9 $params=[
10 'chat_id'=>$chatId,
11 'text'=>'test bitnami',
12 ];
13 $ch = curl_init($website . '/sendMessage');
14 curl_setopt($ch, CURLOPT_HEADER, false);
15 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
16 curl_setopt($ch, CURLOPT_POST, 1);
17 curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
18 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
19 $result = curl_exec($ch);
20
21 if ($result === FALSE) {
22 echo 'An error has occured: ' . curl_error($ch) . PHP_EOL;
23 }
24 else {
25 echo $result;
26 }
27
28 curl_close($ch);
29
30 ?>
testCron.txt 被創建,以便 cronTab 工作。
當我用 firefox 打開 bot.php 時,API 調用有效並且機器人在 Telegram 上發送了消息,但是帶有 curl 的 PHP 腳本不適用於 Cron。
我將 htdocs 和 bot.php 權限設置為 777 進行測試,但它不起作用。
任何的想法?
提示:我將其添加為答案,因為我的聲譽(截至目前)低於 50。
截至目前,我需要更多信息才能提供支持。 這里可能存在多個潛在問題。 看看我們能不能一起走下去。
1. 在 cron 執行期間使錯誤可見
在這種情況下,您可以檢查您的 cron 中的日志。 我建議通過 this to your cron >> /var/log/my-cron.log 2>&1
將任何輸出記錄到文件中。
* * * * * /usr/bin/php /opt/bitnami/apache2/htdocs/bot.php >> /opt/bitnami/apache2/htdocs/testCron.log 2>&1
從這里我們可以檢查是否有任何執行錯誤、權限錯誤或一些錯誤配置。
2. 檢查您的錯誤日志配置
可能是您的錯誤未顯示。 這是一些配置的一個很好的起點
// tells your script to report any error
error_reporting(E_ALL);
// tells your script to enable error logging and the location where it should log to
ini_set('log_errors', '1'); // tells your script to enable logging
ini_set('error_log', '/dev/stderr');
讓我們看看這是否足以獲得初步想法,或者我們是否需要更深入地挖掘。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.