php

2011-06-06 11 views
5

ile doğru bir twitter api kıvırmak nasıl twitter JSON verileri almak için oauth ile php curl kullanmak istiyorum. İşte benim kodum. geri dönüş hata iletisi "error":"Timestamp out of bounds".php

Oauth ile doğru bir twitter api kıvırmak nasıl bilmek isterim?

  1. oauth_consumer_key, oauth_token, oauth_nonce, oauth_signature nedir? haklı mıyım

  2. "error":"Timestamp out of bounds" nasıl çözülür?

  3. Benim curl_setopt yöntemimle ilgili? Birçok şekilde

, başka twitter api (değişti url) çözmek için bu php curl kullanmak istiyorum. Çok teşekkürler.

$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

değil biraz savurgan görünüyor. Neden sadece zaman damgasını "time();'? –

cevap

3

mktime yanlış kullanıyorsunuz, bir tarih dizesi kabul etmiyor. Bunun yerine Ancak bunun, ben ... yaptığın diğer sorularınızın ilgili olarak

$time = time() - 86400; 

öneriyoruz, ben PHP için bir oauth yetenekli twitter kütüphanesini elde öneririz. Orada bol, ve hiçbir nokta genellikle ... Tekerleği yeniden de var :)

Ayrıca

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

+0

hala "hata": "Sınırlar dışında zaman damgası". Ben twitter kütüphanesini deneyeceğim. ama bence çok karmaşık. İhtiyacım olan verileri elde etmenin kolay bir yolunu kullanmak istiyorum. Teşekkürler. –

+0

Sorun yaşamaya devam ederseniz, bize bir örnek istek (eksi hassas bitler) verin. Ben bir twitter kütüphane ekleyerek size çok zaman kazandıracak düşünüyorum :) –

+0

böylece 'twitter library' kullanmak nasıl? Sadece bir 'imzalama 'işlevi hakkındaki tüm makaleleri görüyorum. ama isteğimi nasıl alabilirim? Bana bir kod verebilir misiniz, bu json kodunu yazdırabilir (hangi twitter kütüphanesi ile)? Teşekkürler. –

1

, düzgün sunucuda ayarlanır zaman/tarih olduğunu kontrol edin. Zaman damgasını ~ 24 saatten fazla kapalı ise Twitter sınırlarını hatası atacaktır. linux üzerinde tarih/zaman ayarı için

Rehberi - Ben hata hazırlıksız görüyorum, ama bir zaman damgası dönüştürerek, daha sonra bir biçim dizesi bir tarih yaratmak anlamına http://www.cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt/