簡體   English   中英

php How to make a right twitter api curl with oauth

[英]php How to make a right twitter api curl with oauth

I want use php curl with oauth to get the JSON data from twitter . 這是我的代碼。 返回 na 錯誤消息"error":"Timestamp out of bounds"

我想知道,如何用 Z7C82E855B0415F27BD5092D2 制作正確的 twitter api curl?

  1. 什么是oauth_consumer_keyoauth_tokenoauth_nonceoauth_signature 我對嗎?

  2. 如何解決"error":"Timestamp out of bounds"

  3. 我的curl_setopt方法怎么樣?

在很多方面,我想使用這個php curl來解碼其他 twitter api(更改 url)。 非常感謝。

$callback="<callback url>";
$consumer_key="<Consumer key>";
$consumer_secret="<Consumer secret>";
$oauth_token="<Access Token (oauth_token)>";
$oauth_signature="<Access Token Secret (oauth_token_secret)>";//these key word in my api panel
$time = mktime(date("Y-m-d H:i:s"))-86400;
$url = "https://api.twitter.com/1/friends/ids.json?";
$url .= "user_id=<user id>";
$url .= "&realm=".urlencode($callback)."";
$url .= "&service_provider_id=11";
$url .= "&oauth_consumer_key=".$consumer_key."";
$url .= "&oauth_token=".$oauth_token."";
$url .= "&oauth_nonce=".$consumer_secret."";
$url .= "&oauth_signature_method=HMAC-SHA1";
$url .= "&oauth_timestamp=".$time."";
$url .= "&oauth_version=1.0";
$url .= "&oauth_signature=".$oauth_signature."";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: api.twitter.com'));
$json = curl_exec($ch);
curl_close ($ch);
$data = json_decode($json, true);
print_r($json);

您使用mktime不正確,它不接受日期字符串。 但是,我建議您不要這樣做...

$time = time() - 86400;

關於您的其他問題,我建議為 PHP 獲取支持 oauth 的 twitter 庫。 那里有很多,而且沒有必要重新發明輪子……通常:)

https://dev.twitter.com/docs/auth/oauth/single-user-with-examples

此外,請檢查您的服務器上的時間/日期是否正確設置。 如果您的時間戳超過約 24 小時,Twitter 將引發越界錯誤。

linux 上的日期/時間設置指南 - http://www.cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM