コード例 #1
0
ファイル: TwitterClient.cs プロジェクト: ikuosaito1989/Client
        public async Task <SearchTweetsV2Response> SearchTweetsV2(
            string keyword,
            IEnumerable <string> hashtags = null,
            int pageSize     = 10,
            string untilId   = null,
            string operators = "-is:retweet has:images lang:ja"
            )
        {
            var tags    = hashtags is null ? "" : string.Join(" ", hashtags.Select(x => $"#{x}"));
            var queries = new string[] { keyword, tags, operators }
            .Where(x => !string.IsNullOrEmpty(x));
            var query = string.Join(" ", queries);
            var param = new SearchTweetsV2Parameters(query)
            {
                PageSize = pageSize,
                UntilId  = untilId
            };

            return(await _client.SearchV2.SearchTweetsAsync(param));
        }
コード例 #2
0
        async public Task SearchAsync()
        {
            var client = new TwitterClient(
                ApiKey,
                ApiKeySecret,
                AccessToken,
                AccessTokenSecret);

            try
            {
                var parameters = new SearchTweetsV2Parameters(SearchWord.Value);
                var response   = await client.SearchV2.SearchTweetsAsync(parameters);

                Debug.WriteLine(response);

                var tmpList = new List <TweetData>();

                for (int i = 0; i < response.Tweets.Length; i++)
                {
                    var tweetDatas = response.Includes.Users
                                     .Where(x => x.Id == response.Tweets[i].AuthorId)
                                     .Select <UserV2, TweetData>(t =>
                    {
                        return(new TweetData(t.Name,
                                             t.Username, t.ProfileImageUrl, response.Tweets[i].Text));
                    });
                    foreach (var item in tweetDatas)
                    {
                        tmpList.Add(item);
                    }
                }
                Tweets.Value = tmpList;
            }
            catch (TwitterException ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
コード例 #3
0
        public ITwitterPageIterator <ITwitterResult <SearchTweetsV2Response>, string> GetSearchTweetsV2Iterator(ISearchTweetsV2Parameters parameters, ITwitterRequest request)
        {
            Func <string, Task <ITwitterResult <SearchTweetsV2Response> > > getNext = nextToken =>
            {
                var cursoredParameters = new SearchTweetsV2Parameters(parameters)
                {
                    NextToken = nextToken
                };

                return(_searchQueryExecutor.SearchTweetsAsync(cursoredParameters, new TwitterRequest(request)));
            };

            var twitterCursorResult = new TwitterPageIterator <ITwitterResult <SearchTweetsV2Response>, string>(
                parameters.NextToken,
                getNext,
                page =>
            {
                if (page.Model.Tweets.Length == 0)
                {
                    return(null);
                }

                return(page.Model.SearchMetadata.NextToken);
            },
                page =>
            {
                if (page.Model.Tweets.Length == 0)
                {
                    return(true);
                }

                return(page.Model.SearchMetadata.NextToken == null);
            });

            return(twitterCursorResult);
        }