Подтвердить что ты не робот

Возвратите последнее количество твитов, используя TweetSharp

Я пытаюсь получить последние 200 твитов, используя TweetSharp, но по какой-то причине он возвращает 12.

var service = new TwitterService(
                 _consumerKey,
                 _consumerSecret,
                 tokenClaim,
                 tokenSecret
                 );

IAsyncResult result = service.BeginListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { Count = 200}
IEnumerable<TwitterStatus> tweets = service.EndListTweetsOnUserTimeline(result);

Любые идеи, почему? Благодаря

Обновление

После Как получить максимум 800 твитов из метода ListTweetOnHomeTimeline() TweetSharp?

 IAsyncResult result =
            _twitterService.BeginListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { Count = 200 });
        IEnumerable<TwitterStatus> tweets = _twitterService.EndListTweetsOnUserTimeline(result).ToArray();

        var tweet2 = _twitterService.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { Count = 200, MaxId = tweets.Last().Id });

        return tweet2;

tweet2 пуст.

4b9b3361

Ответ 1

TweetSharp - это старая библиотека и больше не поддерживается. Известно, что у вас проблемы с аутентификацией, но большая вероятность того, что вы столкнулись с другой проблемой из-за изменений в API Twitter. Просто не тратьте время на то, чтобы исправить это.

Я предлагаю вам использовать более современную библиотеку Linq2Twitter, которая также доступна на NuGet.

С LinqToTwitter ваш код будет выглядеть так:

static async Task<List<Status>> ListTweetsOnUserTimeline(string screenName)
{
    var auth = new SingleUserAuthorizer
    {
        CredentialStore = new SingleUserInMemoryCredentialStore
        {
            ConsumerKey = consumerKey,
            ConsumerSecret = consumerSecret,
            AccessToken = accessToken,
            AccessTokenSecret = accessTokenSecret
        }
    };

    using (var context = new TwitterContext(auth))
    {
        var tweets = await (from tweet in context.Status
                            where tweet.Type == StatusType.User &&
                                  tweet.Count == 200 &&
                                  tweet.ScreenName == screenName
                            select tweet)
                            .ToListAsync();
        return tweets;
    }
}