2

我使用 linq-to-twitter,我想传入一个标签来搜索和收集数据(文本、用户名、用户图片。我可以返回一个搜索实体,但我想进一步查找文本,并且在文档中它说搜索实体有一个结果字段,它是一个搜索实体列表,但它没有出现在我身上。对于以下两种情况,我都得到了它下面的红线:

情况1:

        using (var twitterCtx = new TwitterContext())
                    {
                      var searchResults =
                         (from search in twitterCtx.Search
                         where search.Type == SearchType.Search &&
                             search.Query == tag &&
                             search.IncludeEntities == true
                         select search)
                        .SingleOrDefault();

                        searchResults.Results.ForEach(entry =>
                        {
                            ....

和案例2:(我只是将它嵌入一个简单的例子)

var latestTweets= (from tweet in twitterCtx.Search
               where tweet.Count == 200 &&
                     tweet.Hashtag.Contains(tag)
               select tweet).Take(20);


              foreach (var tweet in latestTweets)
              {
                  foreach(var tweet2 in tweet.Result)

.Result 只是没有出现......编辑:API doc

4

1 回答 1

2

这里发生了一些事情。首先,LINQ to Twitter 现在实现了 Twitter API v1.1,这意味着包括搜索在内的所有查询都必须经过身份验证。我在Securing Your Applications有关于如何使用 OAuth 和 LINQ to Twitter 的文档。可下载的源代码和示例页面也有示例。

偶尔发生的下一件事是 Twitter 可能不会为您的查询返回数据。他们的搜索引擎针对某些类型的查询进行了优化,并且他们不保证搜索引擎的质量响应。您可以通过访问他们的搜索页面来检查这一点,并输入与您尝试在 LINQ to Twitter 中使用的查询相同的数据。他们也有高级搜索的链接。

如果您认为 LINQ to Twitter 可能有问题,请使用 Fiddler 捕获 HTTP 流量并向我显示请求和响应。注意:一定要清理凭证,以免它们出现在公共场合。

另一件事是使用 Contains 运算符的第二个查询不起作用。LINQ to Twitter 仅在过滤器中使用相等运算符,这些运算符成为发送到 Twitter 的参数。如果您想要更复杂的查询,首先从 Twitter 获取数据,然后执行 LINQ to Objects 查询。理由是 Twitter API 不能识别特殊的运算符,并且引入这种人为的做法不会让您知道网络上真正发生的事情,这会影响您的应用程序的性能。

@乔梅奥

于 2012-11-17T01:03:11.983 回答