I recently needed to use Twitter's API along with it's OAuth 1.0 implementation in .NET Core. As part of this work I created a DalSoft.RestClient Handler, and released it as a full SDK.
DalSoft.RestClient already has Handlers to support "application/x-www-form-urlencoded" and "multipart/form-data" so I was half way there. I needed to find a simple C# example using OAuth 1.0 and Twitter's API - I found these excellent blog posts:
https://blog.dantup.com/2016/07/simplest-csharp-code-to-post-a-tweet-using-oauth/https://retifrav.github.io/blog/2017/11/24/csharp-dotnet-core-publish-twitter/Armed with the code from these blog posts, I ported the examples to a DalSoft.RestClient Handler, and released a full Twitter SDK in about 3 hours.
To use, you just add the handler with your creds, and access the Twitter API like you would any other API with DalSoft.RestClient.
Here are some examples:
Searchdynamic restClient = new RestClient("https://api.twitter.com/1.1", new Config
(
new TwitterHandler
(
consumerKey: "your-key",
consumerKeySecret: "your-secret",
accessToken: "your-token",
accessTokenSecret: "your-secret"
)
));
var result = await restClient.Search.Tweets.Query(new { q = "Hello World" }).Get();
dynamic restClient = new RestClient("https://api.twitter.com/1.1", new Config
(
new TwitterHandler
(
consumerKey: "your-key",
consumerKeySecret: "your-secret",
accessToken: "your-token",
accessTokenSecret: "your-secret"
)
));
var result = await restClient.Statuses.Home_Timeline.Get();;
dynamic restClient = new RestClient("https://api.twitter.com/1.1", new Config
(
new TwitterHandler
(
consumerKey: "your-key",
consumerKeySecret: "your-secret",
accessToken: "your-token",
accessTokenSecret: "your-secret"
)
));
var result = await restClient.Statuses.Update.Post( new
{
status = "Posted using DalSoft.RestClient",
trim_user = "1"
});
dynamic restClient = new RestClient("https://api.twitter.com/1.1", new Config
(
new TwitterHandler
(
consumerKey: "your-key",
consumerKeySecret: "your-secret",
accessToken: "your-token",
accessTokenSecret: "your-secret"
)
));
Stream stream = new FileStream("c:\DalSoft1.jpg", FileMode.Open, FileAccess.Read);
var mediaUploadResult = await restClient.Media.Upload.Post( new { media = stream } );
var statusUpdateResult = await restClient.Statuses.Update.Post( new { status = "Upload" , trim_user = "1", media_ids = mediaUploadResult.media_id } );
To find out more about DalSoft.RestClient including the new TwitterHandler head over to https://restclient.dalsoft.io