2011-06-06 33 views
5

我想用php curloauthtwitter中獲取JSON數據。這是我的代碼。返回na錯誤消息"error":"Timestamp out of bounds"php如何使用oauth製作右側的api捲曲

我想知道,如何用oauth製作正確的twitter api捲曲?

  1. 是什麼oauth_consumer_keyoauth_tokenoauth_nonceoauth_signature?我對嗎?

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

  3. 我的curl_setopt方法怎麼樣?

在很多方面,我想用這個php curl來解碼其他的Twitter API(更改的網址)。非常感謝。

$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); 
+1

不,我可以看到錯誤的副手,但創建從格式字符串的日期,然後將其轉換爲一個時間戳,似乎有點浪費。爲什麼不直接用'time();'直接得到時間戳? – 2011-06-06 09:27:30

回答

3

您錯誤地使用了mktime,它不接受日期字符串。然而,我建議你這樣做...

$time = time() - 86400; 

關於你的其他問題,我建議爲PHP獲得一個oauth功能的twitter庫。有很多在那裏,有沒有點重新發明輪子...通常:)

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

+0

仍然有''錯誤「:」時間戳越界「。我會嘗試'twitter library'。但我認爲這太複雜了。我只想用一種簡單的方法來獲取我需要的數據。謝謝。 – 2011-06-06 09:39:15

+0

如果您仍然遇到問題,請向我們提供一個示例請求(當然不包括敏感位)。我想你會發現添加一個推特庫會爲你節省很多時間:) – 2011-06-06 09:46:03

+0

那麼如何使用'twitter library'?我只看到所有關於「登錄」功能的文章。但如何得到我的要求?你可以給我一些代碼,可以'print_r'的JSON代碼(與Twitter庫)?謝謝。 – 2011-06-06 09:56:52