首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ASp.net MVC的Twitter API

使用ASp.net MVC的Twitter API
EN

Stack Overflow用户
提问于 2017-08-31 17:20:43
回答 1查看 1.1K关注 0票数 1

我知道如何为Twitter注册一个应用程序,这样我就可以获得授权和客户端ID,客户端秘密等。

然而,我很好奇如何调用API从twitter获取信息。例如,我想从Twitter上的某些人那里获取特定的tweet。比如比尔盖茨。我想要比尔·盖茨,史蒂夫·沃兹和马克·库班的最新推文。我怎样才能形成这些API调用。

另外,使用WEB API或使用Rest调用会更好吗?

另外,我现在是一个迷失的新手。

EN

回答 1

Stack Overflow用户

发布于 2017-08-31 17:37:23

导入linq2twitter库:using LinqToTwitter;

首先生成身份验证前提条件:

代码语言:javascript
复制
            var auth = new SingleUserAuthorizer
            {
                CredentialStore = new InMemoryCredentialStore
                {
                    ConsumerKey = "consumerKey",
                    ConsumerSecret = "consumerSecret",
                    OAuthToken = "oAuthToken",
                    OAuthTokenSecret = "oAuthSecret"
                }
            };
            var context = new TwitterContext(auth);
            var container = await DoPagedSearchAsync(context, this);

下面的函数以list类-> Statuses的形式返回Tweets。

代码语言:javascript
复制
        static async Task<List<Tweet>> DoPagedSearchAsync(TwitterContext twitterCtx, Acquirer formx)
        {
        formx.Enabled = false;
        int MaxSearchEntriesToReturn = 50; //number of results per loop (int)
        int MaxTotalResults = 250; //total number of results (int)
        formx.progressBar1.Maximum = MaxTotalResults;
        string searchTerm = "String to search";
        ulong sinceID = 1;
        ulong maxID;
        List<Status> combinedSearchResults = new List<Status>();
        List<Status> searchResponse =
            await
            (from search in twitterCtx.Search
             where search.Type == SearchType.Search &&
                   search.Query == searchTerm &&
                   search.Count == MaxSearchEntriesToReturn &&
                   search.SinceID == sinceID
             select search.Statuses)
            .SingleOrDefaultAsync();

        if (searchResponse != null)
        {
            combinedSearchResults.AddRange(searchResponse);
            ulong previousMaxID = ulong.MaxValue;
            do
            {
                maxID = searchResponse.Min(status => status.StatusID) - 1;

                Debug.Assert(maxID < previousMaxID);
                previousMaxID = maxID;

                searchResponse =
                    await
                    (from search in twitterCtx.Search
                     where search.Type == SearchType.Search &&
                           search.Query == searchTerm &&
                           search.Count == MaxSearchEntriesToReturn &&
                           search.MaxID == maxID &&
                           search.SinceID == sinceID
                     select search.Statuses)
                    .SingleOrDefaultAsync();

                combinedSearchResults.AddRange(searchResponse);
                try
                {
                    formx.progressBar1.Value = combinedSearchResults.Count;
                }
                catch
                { }
            } while (searchResponse.Any() && combinedSearchResults.Count <= (MaxTotalResults - MaxSearchEntriesToReturn));
        }
        else
        {
            MessageBox.Show("No results obtained");
            formx.progressBar1.Value = 0;
            formx.Enabled = true;
            return null;
        }
        var package = parser(combinedSearchResults, formx);
        return await Task.Run(() =>
        {
            return package;
        });
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45977819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档