2013-06-17 4 views
0

Прежде всего я никогда раньше не использовал JSON. Как вы знаете, twitter изменил свой api на v1.1, и я пытаюсь показать количество подписчиков на странице. Я следовал this пост и теперь в состоянии увидеть все значения JSONПолучение значений из json-запроса

это код, я использую

$token = 'CODE'; 
$token_secret = 'CODE'; 
$consumer_key = 'CODE'; 
$consumer_secret = 'CODE'; 

$host = 'api.twitter.com'; 
$method = 'GET'; 
$path = '/1.1/statuses/user_timeline.json'; // api call path 

$query = array(// query parameters 
    'screen_name' => 'username', 
    'count' => '2' 
); 

$oauth = array(
    'oauth_consumer_key' => $consumer_key, 
    'oauth_token' => $token, 
    'oauth_nonce' => (string)mt_rand(), // a stronger nonce is recommended 
    'oauth_timestamp' => time(), 
    'oauth_signature_method' => 'HMAC-SHA1', 
    'oauth_version' => '1.0' 
); 

$oauth = array_map("rawurlencode", $oauth); // must be encoded before sorting 
$query = array_map("rawurlencode", $query); 

$arr = array_merge($oauth, $query); // combine the values THEN sort 

asort($arr); // secondary sort (value) 
ksort($arr); // primary sort (key) 

// http_build_query automatically encodes, but our parameters 
// are already encoded, and must be by this point, so we undo 
// the encoding step 
$querystring = urldecode(http_build_query($arr, '', '&')); 

$url = "https://$host$path"; 

// mash everything together for the text to hash 
$base_string = $method."&".rawurlencode($url)."&".rawurlencode($querystring); 

// same with the key 
$key = rawurlencode($consumer_secret)."&".rawurlencode($token_secret); 

// generate the hash 
$signature = rawurlencode(base64_encode(hash_hmac('sha1', $base_string, $key, true))); 

// this time we're using a normal GET query, and we're only encoding the query params 
// (without the oauth params) 
$url .= "?".http_build_query($query); 

$oauth['oauth_signature'] = $signature; // don't want to abandon all that work! 
ksort($oauth); // probably not necessary, but twitter's demo does it 

// also not necessary, but twitter's demo does this too 
function add_quotes($str) { return '"'.$str.'"'; } 
$oauth = array_map("add_quotes", $oauth); 

// this is the full value of the Authorization line 
$auth = "OAuth " . urldecode(http_build_query($oauth, '', ', ')); 

// if you're doing post, you need to skip the GET building above 
// and instead supply query parameters to CURLOPT_POSTFIELDS 
$options = array(CURLOPT_HTTPHEADER => array("Authorization: $auth"), 
        //CURLOPT_POSTFIELDS => $postfields, 
        CURLOPT_HEADER => false, 
        CURLOPT_URL => $url, 
        CURLOPT_RETURNTRANSFER => true, 
        CURLOPT_SSL_VERIFYPEER => false); 

// do our business 
$feed = curl_init(); 
curl_setopt_array($feed, $options); 
$json = curl_exec($feed); 
curl_close($feed); 

$twitter_data = json_decode($json); 

Это минимизируется выход

[{"created_at":"Thu Mar 21 12:11:51 +0000 2013", .... 
"id":314710946549465088,"followers_count": "3" }] 

и мой вопрос как я могу получить значение followers_count из этого вывода и эхо в div.

+0

FWIW, ваш вопрос получил несколько видом, потому что вы не пометить его с языком. Всегда указывайте вопрос на языке, который вы используете, если это возможно. Вы можете ответить на вопрос самостоятельно (лучше, чем редактировать вопрос). –

+0

Я был очень стеснен из-за этой проблемы и сделал небольшие ошибки :) спасибо за информацию ... – Emre

ответ

0

нашел ответ

Изменить этот

$result = json_decode($json); 

в

$result = json_decode($json, true); 

Затем добавьте

echo $result[0][user][followers_count]; 
Смежные вопросы