2010-05-15 33 views
5

Tôi sử dụng API twitter để truy xuất tweet của dòng thời gian trên trang chủ của người dùng. Tôi sử dụng định dạng trả lời json. Gần đây id tweet (trong API nó chỉ là 'id') được retuned sai. Như một ví dụTại sao một id tweet sai được trả lại từ API twitter?

bình thường nó sẽ trả về như thế này: "id": 14057503720, (ví dụ là từ twitter console) tuy nhiên theo yêu cầu của tôi nó được trả về như thế này: "id": 1172601832

Nó là 1 chữ số ít hơn và nó hoàn toàn khác. Tôi cần ID phù hợp vì tôi không thể sử dụng các thông số như since_id hoặc max_id.

Trả lời

5

Sử dụng id_str thay vì id. Nó không có vẻ là tài liệu, nhưng nếu bạn nhìn vào nguồn thô của JSON, bạn có thể thấy rằng id_str cho mỗi tweet là một cái tương ứng chính xác với ID của tweet.

1

ví dụ về làm thế nào để có được ID

$url = "http://search.twitter.com/search.json?q=QUERY"; //<--- replace the word QUERY for your own query 
$data = get_data($url); 
$obj = json_decode($data); 

function get_data($url){ 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
    } 

foreach ($obj->results as $item){ 
    $text = $item->text; 
    $user = $item-> from_user; 
    $img = $item->profile_image_url; 
    $tweetId = $item->id_str; // <--- On this line we are getting the ID of the tweet 

echo ' @'; 
echo $user; 
echo $text; 
echo 'Tweet ID: '. $tweetId; //<-- On this line we display the ID of the tweet 

Để biết thêm thông tin GET search | Twitter Developers

Ví dụ yêu cầu trên dòng 30 chương trình "id_str":"122032448266698752" và thats lý do sử dụng $tweetId = $item->id_str; để có được những id_str

2

Đó là 1 chữ số ít hơn và nó hoàn toàn khác. Tôi cần ID phù hợp vì tôi không thể sử dụng các thông số như since_id hoặc max_id.

Nó không phải là hoàn toàn khác nhau; chỉ khác nhau. Nếu bạn viết cả ID trong hex, bạn sẽ nhận

0x345E47BE8 
0x45E47BE8 

Tweet IDs are 64-bit và đâu đó trong phân tích cú pháp bạn mất nửa 32-bit quan trọng nhất của nó. Sử dụng id_str như khác (cũng trong bài viết được liên kết) đề nghị.

Các vấn đề liên quan