Linq2Twitter 搜索缺少受保护的推文

Linq2Twitter search missing protected tweets

我正在使用 Linq2Twitter 并希望从任何 public 推文和我关注的人的任何受保护推文中获取带有特定主题标签的所有推文。我已经使用 SingleUserAuthorizer 设置了我的连接,使用我的消费者密钥、秘密、访问令牌和访问令牌秘密。我能够收到任何 public 推文,但我无法从我关注的人那里取回任何受保护的推文。

我在循环中进行了以下设置以继续获取更多结果。我收到了很多 public 条推文,包括来自我的 public 测试帐户,但是从我受保护的测试帐户我什么也没收到。

search = await (twitterCtx.Search.Where(srch => srch.Type == SearchType.Search 
                                                                && srch.Count == 100 
                                                                && srch.Query == "#myHastTag"
                                                                && srch.MaxID == minID
                                                                && srch.ResultType == ResultType.Recent
                                                            )
                                                    .Select(srch => srch))
                                                    .SingleOrDefaultAsync();

我尝试在搜索时循环获取更多结果(使用 srch.MaxID),但我在结果中找不到我的推文。

如果我使用完全相同的身份验证但搜索具有受保护推文的用户,那么我确实会收到回复:

search = await (twitterCtx.Status.Where(t => t.Type == StatusType.User
                                                                && t.UserID == myTwitterUserID
                                                            )
                                                    .Select(t => t))
                                                    .ToListAsync();

如何在搜索结果时包含受保护的推文?

我刚刚阅读 https://support.twitter.com/articles/14016 - 我猜除非用户授权我的应用程序,否则如果他们的帐户受到保护,我将无法获得他们的推文。

解决方法: 到目前为止,我想出的最好办法是查询用户主页时间线,然后通过 HashTag 对其进行过滤。如果您将该列表与 public 帖子列表混合,那么您应该拥有所有帖子:

using (var twitterCtx = new TwitterContext(auth))
            {
                var tweets =
                await
                (from tweet in twitterCtx.Status
                 where tweet.Type == StatusType.Home
                 && tweet.TweetMode == TweetMode.Extended
                 select tweet)
                .ToListAsync();

                var filteredTweets = tweets.Where(t => t.Entities.HashTagEntities.Any(h => h.Tag == "GregsTestWall"));

            }