【问题标题】:How to use Twitter Api To Get more than 20 list Members in a single request?如何使用 Twitter Api 在单个请求中获取 20 多个列表成员?
【发布时间】:2012-01-23 17:17:35
【问题描述】:

我想在一个请求中让 20 多个用户使用 twitter api 有没有指定它的参数?

我正在使用这个 API http://api.twitter.com/1/Barelyme/Politics/members.xml?cursor=-1

【问题讨论】:

    标签: api twitter


    【解决方案1】:

    根据 Twitter 列表 API 文档:
    http://apiwiki.twitter.com/Twitter-REST-API-Method:-GET-list-members

    一次请求不能超过 20 个。

    【讨论】:

    • 是的,我检查了 dis 链接,但有没有任何特殊类型的 twitter 帐户通过 twitter 可以允许超过 20 个?
    • 看起来不是这样。通常,如果有例外情况,twitter 会列出它们。查看文档,每个请求似乎硬编码 20
    【解决方案2】:

    如果您使用twitteroauth by abraham,则可以遍历列表成员的页面(此示例假设 $connection 已由 twitteroauth 的功能实现定义):

    $user = $connection->get('account/verify_credentials'); //Gets/Tests credentials
    $listmembers = $connection->get("{$user->screen_name}/LISTNAMEORID/members"); //Gets first page of list members; MUST edit "LISTNAMEORID"
    $pagevalue = ""; //Set page value for later use
    
    if($listmembers->next_cursor == 0){ //There is only one page of followers
        for ($j=0, $k=count($listmembers->users); $j<$k; $j++){
            //Your actions here
            //print_r($listmembers); //Displays the page of list members
        }
    } else { //There are multiple pages of followers
        while ($pagevalue!=$listmembers->next_cursor){
            for ($j=0, $k=count($listmembers->users); $j<$k; $j++){
                //Your actions here
                //print_r($listmembers); //Displays the page of list members
            }
            $pagevalue = $listmembers->next_cursor; //Increment the 'Next Page' link
            $listmembers = $connection->get("{$user->screen_name}/LISTNAMEORID/members", array('cursor' => $pagevalue)); //Gets next page of list members; MUST edit "LISTNAMEORID"
        }
    }
    

    【讨论】:

    • 嗨 James -- 我正在尝试使用您的 sn-p,但是,我似乎在每一页上都得到了相同的结果(看起来前 20 个结果是重复的)。有什么想法吗?
    【解决方案3】:
    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
    $listmembers = $connection->get("MexicoTimes/mexicanpoliticians/members");
    $members = array();
    while ($listmembers->next_cursor_str != "0") {
        foreach($listmembers->users as $user)
            $members[] = $user;
        $cursor = $listmembers->next_cursor_str;
        $listmembers = $connection->get("MexicoTimes/mexicanpoliticians/members", array('cursor' => $cursor));
    }
    

    这个与亚伯拉罕的 Twitteroauth 一起为我工作

    【讨论】:

      【解决方案4】:

      可能不是,您可以多次轮询 > 1 以获取更多数据。

      鉴于推特上说你做不到,你可能做不到

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-26
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 2016-01-11
        • 2018-02-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多