PHP 如何在没有oAuth的情况下使用php和Curl更改Twitter的状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 如何在没有oAuth的情况下使用php和Curl更改Twitter的状态相关的知识,希望对你有一定的参考价值。
function twitterSetStatus($user,$pwd,$status) {
if (!function_exists("curl_init")) die("twitterSetStatus needs CURL module, please install CURL on your php.");
$ch = curl_init();
// -------------------------------------------------------
// get login form and parse it
curl_setopt($ch, CURLOPT_URL, "https://mobile.twitter.com/session/new");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 ");
$page = curl_exec($ch);
$page = stristr($page, "<div class='signup-body'>");
preg_match("/form action=\"(.*?)\"/", $page, $action);
preg_match("/input name=\"authenticity_token\" type=\"hidden\" value=\"(.*?)\"/", $page, $authenticity_token);
// -------------------------------------------------------
// make login and get home page
$strpost = "authenticity_token=".urlencode($authenticity_token[1])."&username=".urlencode($user)."&password=".urlencode($pwd);
curl_setopt($ch, CURLOPT_URL, $action[1]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $strpost);
$page = curl_exec($ch);
// check if login was ok
preg_match("/\<div class=\"warning\"\>(.*?)\<\/div\>/", $page, $warning);
if (isset($warning[1])) return $warning[1];
$page = stristr($page,"<div class='tweetbox'>");
preg_match("/form action=\"(.*?)\"/", $page, $action);
preg_match("/input name=\"authenticity_token\" type=\"hidden\" value=\"(.*?)\"/", $page, $authenticity_token);
// -------------------------------------------------------
// send status update
$strpost = "authenticity_token=".urlencode($authenticity_token[1]);
$tweet['display_coordinates']='';
$tweet['in_reply_to_status_id']='';
$tweet['lat']='';
$tweet['long']='';
$tweet['place_id']='';
$tweet['text']=$status;
$ar = array("authenticity_token" => $authenticity_token[1], "tweet"=>$tweet);
$data = http_build_query($ar);
curl_setopt($ch, CURLOPT_URL, $action[1]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$page = curl_exec($ch);
return true;
}
以上是关于PHP 如何在没有oAuth的情况下使用php和Curl更改Twitter的状态的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PHP 中没有硬编码密钥的情况下进行对称加密
如何在没有表单字段的情况下从表单传递数据? (PHP)
如何在 MySQL 和 PHP 中存储和使用 OAuth 令牌?
如何在没有顺序重复的情况下获得 PHP 中的所有排列?
如何在没有页码的情况下创建php分页[保留]
OAuth 2.0 PHP客户端和服务器示例