从 12:30 开始(一直到 1:30、2:30 等),我的应用程序每小时都会发布一条静态推文。我目前正在使用 themattharris 的 twitter API。我也有一个 cron 工作。
30 * * * * php -q /home1/USER_NAME/public_html/twitter/index.php
我遇到的问题是,当我手动刷新 index.php 和我的 cron 作业时,PHP 代码可以正常工作。我从 cron 作业收到的电子邮件是:
Error 200
我想知道的是,如何让我的 cron 工作?我的 cron 作业中没有任何错误。
include 'tmhOAuth/tmhOAuth.php';
$tmhOAuth = new tmhOAuth(array(
'consumer_key' => 'XXX',
'consumer_secret' => 'XXX',
'user_token' => 'XXX',
'user_secret' => 'XXX',
));
// Bahrain's time zone
date_default_timezone_set ('Asia/Riyadh');
// Set status message
$timezone= date("g:i");
$tweetMessage = "It's now" .$timezone. "in Bahrain";
//Response
$response = $tmhOAuth->request('POST', $tmhOAuth->url('1.1/statuses/update'), array('status' => $tweetMessage));
//Do something if the request was unsuccessful
if ($response != 200) {
echo 'Error 200';
}
Try:
30 * * * * /usr/bin/php '/home1/USER_NAME/public_html/twitter/index.php'
这是正确的语法,但是看起来在您的代码中您实际上期望来自页面的响应,如果使用 cron,则该响应将不起作用。
您可以像下面所说的那样使用 wget 来获取实际的 URL,或者另一个选项是使用 Curl 来实际发布和请求该 URL。如果您使用 Curl,您将能够使用标准 cron,因为 Curl 实际上会收到响应。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)