Skip to content
This repository has been archived by the owner on Sep 1, 2023. It is now read-only.

CoreTweet/CoreTweet

Repository files navigation

[ARCHIVED UNTIL ELON QUITS TWITTER/X AND API KEY DON'T COST $100 PER MONTH]

CoreTweet

Build Status on Travis CI Build Status on AppVeyor Standard v2

Yet Another .NET Twitter Library...

Simplest authorizing:

var session = OAuth.Authorize("consumer_key", "consumer_secret");
var tokens = OAuth.GetTokens(session, "PINCODE");

Tweeting is very easy:

tokens.Statuses.Update(status => "hello");

We provide the most modern way to use Twitter's API asynchronously:

var tokenSource = new CancellationTokenSource();
var task = tokens.Statuses.UpdateWithMediaAsync(
    new { status = "Yummy!", media = new FileInfo(@"C:\test.jpg") },
    tokenSource.Token
);
// oh! that was a photo of my dog!!
tokenSource.Cancel();

Go with the Streaming API and LINQ:

var sampleStream = tokens.Streaming.Sample()
    .OfType<StatusMessage>()
    .Select(x => x.Status);
foreach(var status in sampleStream)
    Console.WriteLine("{0}: {1}", status.User.ScreenName, status.Text);

Get fantastic experiences with Rx:

var disposable = tokens.Streaming.FilterAsObservable(track => "tea")
    .OfType<StatusMessage>()
    .Subscribe(x => Console.WriteLine("{0} says about tea: {1}", x.Status.User.ScreenName, x.Status.Text));

await Task.Delay(30 * 1000);
disposable.Dispose();

Various types of method overloads:

tokens.Statuses.Update(status => "hello");

tokens.Statuses.Update(new { status = "hello" });

tokens.Statuses.Update(new YourClass("hello"));

tokens.Statuses.Update(status: "hello");

tokens.Statuses.Update(new Dictionary<string, object>()
{
    {"status", "hello"}
});

Oh yes why don't you throw away any StatusUpdateOptions and it kinds???

Latest Build Results

Platforms

We support both of Windows .NET and Mono, and CoreTweet works on following platforms:

  • .NET Framework 3.5 (without Rx support)
  • .NET Framework 4.0
  • .NET Framework 4.5
  • .NET Standard 1.3
  • Universal Windows Platform
  • Xamarin Android / iOS

Documentation

Documents of API is here.

Visit Wiki to get more information such as examples.

Install

Now available on NuGet!

PM> Install-Package CoreTweet

Or please download a binary from Releases.

Build

You can't build PCL/WindowsRT binaries on Mono (on Linux) because they require non-free libraries.

On Windows

Requires

  • .NET Framework 4.6
  • Windows PowerShell
  • Visual Studio 2017
  • .NET Core 3.1 SDK
  • Doxygen (optional: used to generate documentation)

Step

  • Run PowerShell as an admin and execute
Set-ExecutionPolicy AllSigned
  • Run build.ps1

On Linux and other Unix-like

Requires

  • Mono 4.x or above
  • make
  • XBuild
  • Doxygen (optional: used to generate documentation)

Step

  • Run make

Contributing

Please report to Issues if you find any problems.

We seriously need your help for writing documents.

Please go to Wiki and write API documentation, articles and/or some tips!

Pull requests are welcome.

License

This software is licensed under the MIT License.