如果想用twitter api获取twitter的推文信息,首先你需要在
上面创建一个而应用,然后填写应用的相关信息如下图:
通过创建应用获取 Consumer Key ,Consumer Secret,Access Token,Access Token
<?php
functionbuildBaseString($baseURI,$method,$params){
$r=array();
ksort($params);
foreach($paramsas$key=>$value){
$r[]="$key=".rawurlencode($value);
}
return$method."&".rawurlencode($baseURI).'&'.rawurlencode(implode('&',$r));
}
functionbuildAuthorizationHeader($oauth){
$r='Authorization:OAuth';
$values=array();
foreach($oauthas$key=>$value)
$values[]="$key=\"".rawurlencode($value)."\"";
$r.=implode(',',$values);
return$r;
}
functionreturnTweet(){
$oauth_access_token="970871825709244417-77xNRiOhc9t1ugXcaLm1XdP0HSaYv4J";
$oauth_access_token_secret="D9MO2Xux4YciTh0z91nLfQoFS7bDZp7zoSMDH37cpBVHk";
$consumer_key="JPflgwtDYFghOO6zjXJqcPzeE";
$consumer_secret="0h2qs174patwTWC2hy6XfqsfnhlJvVBWZUnQja7FTGs4p5Y7BY";
$twitter_timeline="user_timeline";//mentions_timeline/user_timeline/home_timeline/retweets_of_me
//createrequest
$request=array(
'screen_name'=>'GbrilliantQ',
'count'=>'3'
);
$oauth=array(
'oauth_consumer_key'=>$consumer_key,
'oauth_nonce'=>time(),
'oauth_signature_method'=>'HMAC-SHA1',
'oauth_token'=>$oauth_access_token,
'oauth_timestamp'=>time(),
'oauth_version'=>'1.0'
);
//mergerequestandoauthtoonearray
$oauth=array_merge($oauth,$request);
//dosomemagic
$base_info=buildBaseString("/1.1/statuses/$twitter_timeline.json",'GET',$oauth);
$composite_key=rawurlencode($consumer_secret).'&'.rawurlencode($oauth_access_token_secret);
$oauth_signature=base64_encode(hash_hmac('sha1',$base_info,$composite_key,true));
$oauth['oauth_signature']=$oauth_signature;
//makerequest
$header=array(buildAuthorizationHeader($oauth),'Expect:');
$options=array(CURLOPT_HTTPHEADER=>$header,
CURLOPT_HEADER=>false,
CURLOPT_URL=>"/1.1/statuses/$twitter_timeline.json?".http_build_query($request),
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_SSL_VERIFYPEER=>false);
$feed=curl_init();
curl_setopt_array($feed,$options);
$json=curl_exec($feed);
curl_close($feed);
return$json;
}
$tweet=returnTweet();
echo$tweet;
?>