TwitterSharp 2.2.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package TwitterSharp --version 2.2.0
NuGet\Install-Package TwitterSharp -Version 2.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TwitterSharp" Version="2.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TwitterSharp --version 2.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TwitterSharp, 2.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TwitterSharp as a Cake Addin #addin nuget:?package=TwitterSharp&version=2.2.0 // Install TwitterSharp as a Cake Tool #tool nuget:?package=TwitterSharp&version=2.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Documentation
How does it works?
To begin with, please go to the Twitter Developer Portal and create a new application
Then you must instantiate a new client:
var client = new TwitterSharp.Client.TwitterClient(bearerToken);
From there you can access various methods to access tweets and users, however please make note that a basic request only includes:
- For tweets: its ID and content
- For users: its ID, name and username
To solve that, most function take an array of UserOption or TweetOption, make sure to add what you need there!
Need more help? You can use the examples below, if you're still lost feel free to open an issue or a discussion!
Examples
Get a tweet from its ID
var client = new TwitterSharp.Client.TwitterClient(bearerToken);
var answer = await client.GetTweetAsync("1389189291582967809");
Console.WriteLine(answer.Text); // たのしみ!!\uD83D\uDC93 https://t.co/DgBYVYr9lN
Get an user from its username
var client = new TwitterSharp.Client.TwitterClient(bearerToken);
var answer = await client.GetUserAsync("theindra5");
Console.WriteLine(answer.Id); // 1022468464513089536
Get latest tweets from an user id with the attached medias
var client = new TwitterSharp.Client.TwitterClient(bearerToken);
// You can get the id using GetUsersAsync
var answer = await client.GetTweetsFromUserIdAsync("1109748792721432577", new TweetSearchOptions
{
TweetOptions = new[] { TweetOption.Attachments },
MediaOptions = new[] { MediaOption.Preview_Image_Url }
});
for (int i = 0; i < answer.Length; i++)
{
var tweet = answer[i];
Console.WriteLine($"Tweet n°{i}");
Console.WriteLine(tweet.Text);
if (tweet.Attachments?.Media?.Any() ?? false)
{
Console.WriteLine("\nImages:");
Console.WriteLine(string.Join("\n", tweet.Attachments.Media.Select(x => x.Url)));
}
Console.WriteLine("\n");
}
Get the users that someone follow
var client = new TwitterClient(Environment.GetEnvironmentVariable("TWITTER_TOKEN"));
var answer = await client.GetFollowingAsync("1433657158067896325", new UserSearchOptions
{
Limit = 1000
});
Console.WriteLine(string.Join("\n", answer.Users.Select(u => u.Username)));
while (answer.NextAsync != null) // We go to the next page if there is one
{
answer = await answer.NextAsync();
Console.WriteLine(string.Join("\n", answer.Users.Select(u => u.Username)));
}
Continuously get all the new tweets from some users
var client = new TwitterSharp.Client.TwitterClient(bearerToken);
// Subscribe to 5 Twitter accounts
var request = new TwitterSharp.Request.StreamRequest(
Expression.Author("moricalliope") // using TwitterSharp.Rule;
.Or(
Expression.Author("takanashikiara"),
Expression.Author("ninomaeinanis"),
Expression.Author("gawrgura"),
Expression.Author("watsonameliaEN")
)
, "Hololive");
await client.AddTweetStreamAsync(request); // Add them to the stream
// We display all the subscriptions we have
var subs = await client.GetInfoTweetStreamAsync();
Console.WriteLine("Subscriptions: " + string.Join("\n", subs.Select(x => x.Value.ToString())));
// NextTweetStreamAsync will continue to run in background
Task.Run(async () =>
{
// Take in parameter a callback called for each new tweet
// Since we want to get the basic info of the tweet author, we add an empty array of UserOption
await client.NextTweetStreamAsync((tweet) =>
{
Console.WriteLine($"From {tweet.Author.Name}: {tweet.Text} (Rules: {string.Join(',', tweet.MatchingRules.Select(x => x.Tag))})");
},
new TweetSearchOptions
{
UserOptions = Array.Empty<UserOption>()
});
});
// Add new high frequent rule after the stream started. No disconnection needed.
await client.AddTweetStreamAsync(new TwitterSharp.Request.StreamRequest( Expression.Author("Every3Minutes"), "Frequent"));
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net5.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.4.0 | 9,834 | 12/9/2022 |
2.3.0 | 1,901 | 9/15/2022 |
2.2.0 | 2,980 | 7/15/2022 |
2.1.0 | 2,330 | 3/22/2022 |
2.0.0 | 677 | 3/15/2022 |
1.5.0 | 769 | 2/15/2022 |
1.4.0 | 519 | 2/6/2022 |
1.3.0 | 458 | 2/4/2022 |
1.2.0 | 390 | 1/13/2022 |
1.1.1 | 463 | 1/10/2022 |
1.1.0 | 299 | 1/5/2022 |
1.0.1 | 872 | 6/13/2021 |
1.0.0 | 447 | 6/11/2021 |
0.2.0-alpha | 257 | 5/8/2021 |
0.1.0-alpha | 266 | 5/7/2021 |
0.0.0-alpha | 250 | 5/5/2021 |