Запланированное размещение в твиттере в PHP cURL

В настоящее время я могу публиковать твиты в своем аккаунте Twitter, используя Twitter API. Я использую cURL. Но теперь я хочу опубликовать твиты в назначенную дату / время. Я знаю, что это возможно, но не знаю, как?

<?php
$twitter_consumer_key = 'xxx';
$twitter_consumer_secret = 'xxx';
$twitter_access_token = 'xxx';
$twitter_access_token_secret = 'xxx';
$twitter_version = '1.0';
$sign_method = 'HMAC-SHA1';
$status="HelloWorld";
$url = 'https://api.twitter.com/1.1/statuses/update.json';
$param_string = 'oauth_consumer_key=' . $this->twitter_consumer_key .
'&oauth_nonce=' . time() .
'&oauth_signature_method=' . $this->sign_method .
'&oauth_timestamp=' . time() .
'&oauth_token=' . $this->twitter_access_token .
'&oauth_version=' . $this->twitter_version .
'&status=' . rawurlencode($status);

//Generate a signature base string for POST
$base_string = 'POST&' . rawurlencode($url) . '&' . rawurlencode($param_string);
$sign_key = rawurlencode($this->twitter_consumer_secret) . '&' . rawurlencode($this->twitter_access_token_secret);

//Generate a unique signature
$signature = base64_encode(hash_hmac('sha1', $base_string, $sign_key, true));
$curl_header = 'OAuth oauth_consumer_key=' . rawurlencode($this->twitter_consumer_key) . ',' .
'oauth_nonce=' . rawurlencode(time()) . ',' .
'oauth_signature=' . rawurlencode($signature) . ',' .
'oauth_signature_method=' . $this->sign_method . ',' .
'oauth_timestamp=' . rawurlencode(time()) . ',' .
'oauth_token=' . rawurlencode($this->twitter_access_token) . ',' .         'oauth_version=' . $this->twitter_version;

$ch = curl_init();
//Twitter post
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: ' . $curl_header));
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'status=' . rawurlencode($status));

$twitter_post = json_decode(curl_exec($ch));
curl_close($ch);
print_r($twitter_post);
?>

Какие изменения мне нужно сделать, чтобы опубликовать твит в назначенную дату / время

2

Решение

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

1 — Установите задачу cron, которая будет запускаться каждую минуту на вашей странице с именем post_tweets.php (например)

2 — Когда пользователь хочет запланировать твит, сохраните твит, включая дату / время, когда твит должен быть опубликован в базе данных. Допустим, твит должен быть опубликован в 2015-06-11 18:00:00

3 — Каждый раз, когда ваш cron будет вызывать вашу страницу post_tweets.php, эта страница должна проверять, есть ли у вас запись в вашей базе данных старше, чем время post_tweets.php во время выполнения (если страница вызывается в 2015-06-11 18:00:35 или более, на вашей странице будет отображаться запись на 2015-06-11 18:00:00 >> иди иди, ты должен опубликовать твит!)

4 — Если да, опубликовать твит. Затем удалите твит из своей базы данных

5 — если нет, ничего не происходит

Этот метод потребует выполнения запроса SELECT каждую минуту, чтобы проверить, есть ли что-то для публикации.

Надеюсь, теперь вы лучше поймете мою логику.

1

Другие решения

Вы можете использовать задания cron.

http://www.thesitewizard.com/general/set-cron-job.shtml для объяснений.

https://www.setcronjob.com/ за бесплатный сервис, если у вас нет опции cron на вашем хостинге (обычно это общий хостинг)

Наслаждайтесь !

0