2016-10-02 154 views
0

我想通过Twitter API检索跟随某个其他用户(例如@Google)的用户的所有Twitter ID。虽然请求在Postman中起作用,但我无法在PHP中使用它。看来$ userids不是一个字符串,所以json_decode无法处理它。下面的代码。谢谢你的帮助!从Twitter API响应处理JSON对象

<?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是一个数组,你可以在一个新的TwitterOAuth来源看:

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

这意味着你不必json_decode()再次,因为它已经是一个PHP数组。

+0

啊好的,谢谢!我现在试图通过保存在数组中的每个用户标识和光标(它位于响应的最后)将其保存在数据库中。在介绍数据库复杂性之前,我只想回显ID以查看它是否有效。然而,当我使用以下代码:'for($ i = 0; $ i <= 5000; $ i ++){ echo“

"; echo $userids["ids"]; echo "
”;我得到以下错误:致命错误:不能使用stdClass类型的对象作为数组在第35行中的/Applications/XAMPP/xamppfiles/htdocs/fetchusers.php ---可能是一个微不足道的错误,但我是卡住。谢谢! – coderloop

+0

编辑:已解决。 $ userids显然是StdClass的一个对象,它包含(!)数组“ids”。所以解决方案是'echo $ userids-> ids [5];'以得到例如id号5和'echo $ userids-> next_cursor;'来获得游标属性。 – coderloop

+0

如果您想知道哪个类型的变量,您可以始终使用'gettype($ var)'。 – hazelnoot