0

我正在尝试使用 SWIFT 查找所有提到“苹果”一词的推文。

我正在为 twitter 使用开源库(https://github.com/mattdonnelly/Swifter/tree/xcode-6.3)。但是当调用 api 时,它只提供前 32 条推文,而我想要所有推文。这是我正在使用的代码

let swifter = Swifter(consumerKey: "", consumerSecret: "", appOnly: true)

        swifter.authorizeAppOnlyWithSuccess({ (accessToken, response) -> Void in
          //  println("\(accessToken)")

            swifter.getSearchTweetsWithQuery("apple", geocode: "", lang: "", locale: "", resultType: "", count: 150, until: "", sinceID: "2009-01-01", maxID: "", includeEntities: true, callback: "", success: { (statuses, searchMetadata) -> Void in


                println(statuses
                )

                }) { (error) -> Void in
                    println(error)
            }
           // println("\(response)")
        }, failure: { (error) -> Void in
          //  println(error)
        })


    }

关于如何解决这个问题的任何建议,此外,如果有任何其他方法,那么它也受到欢迎。

4

1 回答 1

1

有数百万甚至数十亿条包含字符串“apple”的推文。Twitter 不会一次给你所有这些推文,因为它会使你的应用程序崩溃。您将需要获取推文处理那些,(100 似乎是最大值)然后如果您想要更多,您可以构建另一个获取,例如:

swifter.getSearchTweetsWithQuery("apple", geocode: nil, lang: nil, locale: nil, resultType: nil, count: 100, until: "", sinceID: nil, maxID: "", includeEntities: true, callback: "", success: { (statuses, searchMetadata) -> Void in


                print(statuses)
                //if you need more continue with another fetch but set the maxID to the ID of the last tweet from the previous fetch 
                swifter.getSearchTweetsWithQuery("apple", geocode: nil, lang: nil, locale: nil, resultType: nil, count: 150, until: nil, sinceID: nil, maxID: idOfLastTweetFromPreviousFetch, includeEntities: true, callback: nil, success: { (statuses, searchMetadata) -> Void in


                    print(statuses)


                    }) { (error) -> Void in
                        print(error)
                    }

                }) { (error) -> Void in
                    print(error)
            }

Swifter 似乎是一个不错的库,但它的文档很少。相反,您将需要使用 twitter 的文档来了解要传递的适当参数。例如,可以在此处找到此端点的文档

于 2016-04-15T23:52:45.560 回答