我知道如何为Twitter注册一个应用程序,这样我就可以获得授权和客户端ID,客户端秘密等。
然而,我很好奇如何调用API从twitter获取信息。例如,我想从Twitter上的某些人那里获取特定的tweet。比如比尔盖茨。我想要比尔·盖茨,史蒂夫·沃兹和马克·库班的最新推文。我怎样才能形成这些API调用。
另外,使用WEB API或使用Rest调用会更好吗?
另外,我现在是一个迷失的新手。
发布于 2017-08-31 17:37:23
导入linq2twitter库:using LinqToTwitter;
首先生成身份验证前提条件:
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。
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;
});
}https://stackoverflow.com/questions/45977819
复制相似问题