【问题标题】:Twitter API with PHP - can't pass results of friends/ids request to users/lookup request using abrahams twitter oauth library带有 PHP 的 Twitter API - 无法使用 abrahams twitter oauth 库将朋友/ids 请求的结果传递给用户/查找请求
【发布时间】:2017-06-01 14:32:49
【问题描述】:

在使用 Abraham 的 Twitter OAuth (https://twitteroauth.com/) PHP 库访问 Twitter REST API 时,我在将 friends/ids 请求的结果传递给 users/lookup 请求时遇到问题。

身份验证后,我得到一个帐户的好友列表作为用户 ID:

$content = $connection->get("followers/ids", ["screen_name" => $input]);

然后我正在创建一个逗号分隔的列表:

foreach ($content as $user) {
$userlist = implode(', ', $user);

然后我将其传递给用户/查找请求:

$output = $connection->post("users/lookup", ["user_id" => $userlist]);

这给出了一个代码 17 错误,我理解这意味着 Twitter 没有识别出这样的帐户。输出 imploded $userlist 表明此步骤工作正常。

如果我自己定义$userlist,那么随后对users/lookup 的调用就可以正常工作。例如:

$userlist = "820310862045052930, 806614673474912256, 745020013837434880, 789205729123065860, 717272899741204480, 2523773164, 763810846929719296, 817061186705457152, 806495626670186496, 1935657786, 813858305282109442, 224295002, 24016369, 719472791200739328, 3292608016, 544394440, 338499233, 704776216, 1080910670, 2162932007, 15700673, 2212757984, 375238808, 2949937593, 244523746, 145021177, 4195801821, 799570638847561728"

我尝试将第一个请求的结果(朋友/ID)转换为数组:

 $contentarray = json_decode(json_encode($content), True);

但这没有区别。我还尝试将 id 列表作为数组传递(并在请求中定义 $userlist )。将$userlist 括在引号中也不起作用,如果我使用 GET 或 POST 也没有区别。同样,创建另一个仅包含 user_ids 的数组(不包括游标)并从中创建一个逗号分隔的列表并没有什么区别。

Twitter OAuth 通常使用起来非常简单直观,但我在这上面花了好几个小时却一无所获。任何人都可以帮忙解决我哪里出错了吗?

【问题讨论】:

    标签: php twitter twitter-oauth


    【解决方案1】:

    所以问题出在我的foreach 循环上。向hobbes3 致敬this answer

    认证后:

    // get the user's followers
    $content = $connection->get("followers/ids", ["screen_name" => $input]);
    
    // replace stdclass object with array
     $content_as_array = json_decode(json_encode($content), True);
    
    //create new array with foreach
    $content_as_new_array = array();
    foreach($content_as_array as $user) {
    foreach($user as $newuser) {
    array_push($content_as_new_array, $newuser);
      }
    }
    
    // implode this new array
    $userlist = implode(", ", $content_as_new_array);
    
    // and pass this new array to API
    
     $output = $connection->post("users/lookup", ["user_id" => $userlist]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2010-12-14
      • 2014-05-04
      相关资源
      最近更新 更多