繁体   English   中英

计划在PHP cURL中发布到Twitter

[英]Scheduled posting to twitter in PHP cURL

我目前可以使用Twitter API将推文发布到我的Twitter帐户。 我正在使用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);
?>

我需要进行哪些更改才能在预定的日期/时间发布推文

这是您可以执行预定的tweet的全景图:

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-如果是,则发布推文。 然后从数据库中删除该tweet

5-如果没有,则无反应

此方法需要每分钟运行一次SELECT查询,以检查是否有可发布的内容。

希望您现在能更好地理解我的逻辑。

您可以使用cron作业。

有关说明, 请http://www.thesitewizard.com/general/set-cron-job.shtml

https://www.setcronjob.com/以获得免费服务,如果您的主机上没有cron选项(通常是共享主机)

请享用 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM