【发布时间】:2020-02-17 03:00:59
【问题描述】:
在 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 进行测试,但是没有用。
有什么想法吗?
【问题讨论】:
标签: php cron telegram-bot