2016-10-02 5 views
0

Twitter APIを使用して、特定の他のユーザー(たとえば、@Google)に続くユーザーのすべてのTwitter IDを取得したいとします。リクエストはPostmanで動作しますが、PHPで動作させることはできません。 $ useridsは文字列ではないので、json_decodeはそれを処理できません。以下のコード。ご協力いただきありがとうございます!Twitter APIの応答からJSONオブジェクトを処理する

$response = JsonDecoder::decode($result, $this->decodeJsonAsArray); 

を再び()、それをあなたがjson_decodeする必要はありませんことを意味し、それはすでにPHPの配列だとして:あなたはTwitterOAuthソースに見ることができるよう

<?php 
require "twitteroauth/autoload.php"; 

use Abraham\TwitterOAuth\TwitterOAuth; 

ini_set('max_execution_time', 600); 
ini_set('memory_limit', '1024M'); 

$consumerKey = 'redacted'; 
$consumerKeySecret = 'redacted'; 
$accessToken = 'redacted'; 
$accessTokenSecret = 'redacted'; 
$cursor = -1; // first page 

$connection = new TwitterOAuth($consumerKey, $consumerKeySecret, $accessToken, $accessTokenSecret); 
$content = $connection->get("account/verify_credentials"); 

$userids = $connection->get("followers/ids", ["cursor" => -1, "screen_name" => "google", "count" => 5000]); 

echo $userids; 

$data = json_decode($userids); 
foreach ($data as $ids => $value) { 
    // tbd 
} 
var_dump($data); 

?> 
+0

コードの実際の動作は何ですか? "$ useridsは文字列ではないようです" - それを確認できますか? – YakovL

答えて

0

$ユーザーIDは、配列です。

+0

ああ、ありがとう!私は今、配列に保存されているすべてのユーザーIDとカーソル(応答の最後にある)を調べてデータベースに保存します。私はDBの複雑さをもたらす前に、私はちょうどそれが動作するかどうかを見るためにidをエコーし​​たいと思った。しかし、私は次のコードを使用します: 'for($ i = 0; $ i <= 5000; $ i ++){ echo"

"; echo $userids["ids"]; echo "
"; } '私は次のエラーが表示されます:'致命的なエラー:/Applications/XAMPP/xamppfiles/htdocs/fetchusers.php 35行目でstdClass型のオブジェクトを配列として使用できません---おそらく些細な間違いでしょう立ち往生した。どうも! – coderloop

+0

編集:解決済み。 $ useridsは明らかにStdClassのオブジェクトで、配列 "ids"を含んでいます(!)。だから、解決策は 'echo $ userids-> ids [5];'例えば 'id $ 5 'と' echo $ userids-> next_cursor; 'でカーソルプロパティを取得することでした。 – coderloop

+0

変数の種類を知りたければ、いつでも 'gettype($ var)'を使うことができます。 – hazelnoot

関連する問題