2

linq-to-twitterを使用していて、タグを渡してデータ(テキスト、ユーザー名、ユーザー画像。検索エンティティを返すことはできますが、さらに進んでテキストを検索し、ドキュメントでは、検索エンティティにはSearchEntitiesのリストである結果フィールドがあると記載されていますが、表示されません。以下の両方の場合で、その下に赤い線が表示されます。

ケース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)

。結果が表示されない...編集:APIドキュメント

4

1 に答える 1

2

ここで起こっていることがいくつかあります。まず、LINQtoTwitterはTwitterAPIv1.1を実装するようになりました。つまり、検索を含むすべてのクエリを認証する必要があります。アプリケーションの保護で、LINQtoTwitterでOAuthを使用する方法に関するドキュメントがここにあります。ダウンロード可能なソースコードとサンプルページにも例があります。

次に時々発生するのは、Twitterがクエリのデータを返さない可能性があることです。彼らの検索エンジンは特定のタイプのクエリ用に最適化されており、検索エンジンの品質応答を保証するものではありません。これを確認するには、検索ページにアクセスして、LINQtoTwitterで使用しようとしているクエリと同じデータを入力します。高度な検索へのリンクもあります。

LINQ to Twitterに問題があると思われる場合は、Fiddlerを使用してHTTPトラフィックをキャプチャし、リクエストとレスポンスを表示してください。注:公開されないように、必ず資格情報をサニタイズしてください。

もう1つは、Contains演算子を使用した2番目のクエリが機能しないことです。LINQ to Twitterは、フィルターで等式演算子のみを使用します。これは、Twitterに送信されるパラメーターになります。より高度なクエリが必要な場合は、最初にTwitterからデータを取得してから、LINQtoObjectsクエリを実行します。理論的根拠は、Twitter APIは特別な演算子を認識せず、この人工的なものを導入しても、アプリのパフォーマンスに影響を与えるネットワーク上で実際に何が起こっているのかを通知しないということです。

@ジョーマヨ

于 2012-11-17T01:03:11.983 に答える