簡體   English   中英

LinqToTwitter獲得轉推狀態

[英]LinqToTwitter get Retweet status

我正在使用LinqToTwitter API,並且遇到以下問題。

盡管我(當前用戶)已經轉發了一條推文,但是我可以更改ToggleButton上的IsChecked屬性來轉發,但如何獲取信息。

我已經嘗試獲取一個狀態的所有tweet,並將其與我轉發過的tweetID列表進行比較。

var publicTweets = await (from tweet in TweetContent.Connection.Status
                          where tweet.Type == StatusType.Retweets &&
                                tweet.ID == TweetID
                          select tweet)
                          .ToListAsync();

foreach (var publicTweet in publicTweets)
{
    foreach (var myTweet in TweetContent.AllMyReTweets)
    {
        if (publicTweet.ID == myTweet)
        {
            // false means the ToggleButton is PreSet
            RetweetState = false;
            break;
        }
    }
}
// No hit
RetweetState = true;

TweetContent.AllMyRetweets在這里定義:

 List<ulong> myList = new List<ulong>();
 var myRetweets = await (from retweet in TweetContent.Connection.Status
                         where retweet.Type == StatusType.RetweetsOfMe &&
                               retweet.Count == 100
                         select retweet)
                         .ToListAsync();

if (myRetweets != null)
{
    foreach (var tweet in myRetweets)
    {
        myList.Add(tweet.ID);
    }
}

我認為此解決方案有兩個問題:

  1. 它為我要顯示的每條推特發出一個API調用,這意味着可能需要很多時間。

  2. 我很快就會收到“超出速率限制”異常,該異常告訴我這不是正確的方法。

做這個的最好方式是什么?

這比我想的要容易:-)

該信息位於屬性Status.Retweeted中的每個Status中,但在默認的searh查詢(例如:

 var tweets = Enumerable.FirstOrDefault(
                                from tweet in TweetContent.Connection.Search
                                where tweet.Type == SearchType.Search &&
                                    tweet.Query == query &&
                                    tweet.IncludeEntities == true &&
                                    tweet.Count == maxNumberToFind && (tweet.MaxID == id)
                                select tweet);

之后,您必須使用剛剛收到的tweetIDList進行lookUp查詢。 這將使用正確的值填充屬性Status.Retweeted

        List<Status> tweets =
        await
        (from tweet in TweetContent.Connection.Status
         where tweet.Type == StatusType.Lookup &&
               tweet.TweetIDs == tweetIDList
         select tweet)
        .ToListAsync();

        return tweets;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM