2013-07-14 3 views
3

Каждый час, начинающийся с 12:30 (и переход на 1:30, 2:30 и т. Д.), Мое приложение опубликует статическое твит. В настоящее время я использую API твиттера themattharris. У меня тоже есть работа cron.Cron Job + Twitter

30 * * * * php -q /home1/USER_NAME/public_html/twitter/index.php 

Проблема, которую я имею, что код PHP работает, когда я вручную обновить index.php & мой хрон полу-работ. Письмо, которое я получаю от моих хрон работы является:

Error 200 

То, что я хотел бы знать, как я могу получить мои хроны работать? У меня нет ошибок в моей работе 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'; 
} 
+1

Каково содержимое '$ tmhOAuth-> response' после ошибки? См. Https://github.com/themattharris/tmhOAuth.blog/master/tmhOAuth.php#L805 –

ответ

1

Try:

30 * * * * /usr/bin/php '/home1/USER_NAME/public_html/twitter/index.php' 

что правильный синтаксис, однако он выглядит в вашем коде вы на самом деле ожидает ответа от страницы, которая не будет работать при использовании хрон.

Вы могли бы сделать так, как вы сказали ниже, и использовать wget для получения фактического URL-адреса, или другой вариант - использовать Curl для фактического размещения и запроса этого URL-адреса. Если вы поедете с Curl, вы сможете использовать стандартный cron, поскольку Curl действительно получит ответ.

+0

С JustHost, как они установили свое задание cron, это похоже на это: _ _ _ _ _ | _ | | _ | | _ | | _ | | _ | КОМАНДА: --- В 5 коробок указывают мин, час, ежедневно, ежемесячно, ежегодно (Какие падение падения) Командная строка просто место, где мой сценарий, в этом случае «www.domainname .com/twitter/index.php « –

+0

Я, я думаю, что многие хосты такие, и это меня задевает. Мне не нравится этот метод, потому что это ставит ваше задание cron на общедоступную страницу, где любой, кто пытается запросить эту страницу, запускает этот сценарий. Если это так, иногда я передаю параметр сценарию, например, www.domainname.com/twitter/index.php?arg1=121. Таким образом, внутри скрипта вы можете подтвердить, что кто-то не просто ударил эту страницу .../twitter/index.php и запустил cron. Я считаю, что в целом лучше использовать ваши рабочие места не на странице, которая будет храниться на вашем веб-сервере, и иметь их в другой папке. –

+2

Ну, я решил проблему, все было в порядке, только моя команда не была. Используемая мной команда: wget -O/dev/null -q http://www.DOMAINNAME.com/twitter/index.php –