2015-04-16 3 views
-1

Я пытаюсь получить текст из твиттера, используя данные php и JSON. Я использовал этот скриптPHP получить объект от JSON

<?php 
session_start(); 
require_once("twitter/twitteroauth.php"); //Path to twitteroauth library you downloaded in step 3 

$twitteruser = "user"; //user name you want to reference 
$notweets = 5; //how many tweets you want to retrieve 
$consumerkey = "XXXXXXXXX"; //Noted keys from step 2 
$consumersecret = "XXXXXXXXX"; //Noted keys from step 2 
$accesstoken = "XXXXXXXX"; //Noted keys from step 2 
$accesstokensecret = "XXXXXXXXXXXX"; //Noted keys from step 2 

function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { 
    $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); 
    return $connection; 
} 

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); 

$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets); 

$json = json_encode($tweets, true); 

echo $json; 

?> 

Когда я делаю так вторит все данные JSon как [{"created_at":"Wed Apr 01 21:34:33 +0000 2015","id":5.8338196298063e+17,"id_str":"583381962980626432","text":"THIS IS A TWEET",ECT

Все, что я хочу, чтобы повторить текст в "text" объекта (ЭТО TWEET). Я попытался добавить:

foreach($json as $i){ echo $i['text']; }

Но получить ошибку. Есть предположения?

Вот полный JSON JSON

+1

Какая ошибка возникает? Можете ли вы показать полную версию json? –

+0

Что такое $ tweets перед вами json_encode? похоже, вам просто нужно, чтобы 'json_decode' ваш результат в нормальный массив –

+0

ошибка' 'Недопустимый аргумент, предоставленный foreach()'. Если я не кодирую его и не повторяю, он просто выводит 'array' – Packy

ответ

0

Сделать for() петлю и внутри вы можете получить доступ к тексту с $tweets[$i]->text

Try с этим:

<?php 

    for($i = 0; $i < count($tweets); $i++) { 
    echo $tweets[$i]->text . "<br>"; 
    }   
?> 

Выход:

THIS IS A TWEET 
ANOTHER TWEET 
+0

Я получаю' json_decode() ожидает, что параметр 1 будет строкой, массив задан' – Packy

+0

Я добавил изображение полного выхода JSON в консоли – Packy

+0

@Packy edit ваш вопрос с выводом эха $ tweets; и дайте мне знать –

0

Похоже, что вы пытаетесь повторить данные ПОСЛЕ закодировали его. Вместо $ json используйте $ tweets.

foreach($tweets as $i) { 
    echo $i['text'] 
} 

Если вы хотите твиты перекликались как JSon кодируются массив, а затем сохранить его в новый массив и кодирования, что:

$data = array(); 
foreach($tweets as $i) 
    array_push($data, $i['text']); 

$json = json_encode($data); 
+0

Я получаю ошибку 'Не могу использовать объект типа stdClass as array in' – Packy

Смежные вопросы