Utiliser Twitterizer en .Net - Tutorial

 01/01/2019 |   Admin |  C#


Twitterizer est une dll qui permet de communiquer avec l'API de twitter pour poster un tweet, lire des informations sur un utilisateur, répondre a un tweet, obtenir des images, faire des recherches avec un hashtag. Bref tout ce dont vous avez besoin !

Site officiel : http://www.twitterizer.net/

Avant de commencer

il faut créer une application twitter avec les paramètres Read/write à cette adresse : https://dev.twitter.com/

(Si vous aviez une application read only il faudra réinitialiser les tokens après avoir changé le mode)

Dans cet example on simulera une simple application console pour simplifier la compréhension.

Créer un nouveau projet console puis ajouter un fichier app.config. Ce fichier servira a stocker les tokens de sécurité obtenus précédemment ainsi que la requète.

Fichier app.config

<?xmlversion="1.0"?>
<configuration>
  <appSettings>
    <!-- tokens-->
    <add  key="ConsumerKey"value="xxxxxx"/>
    <add  key="ConsumerSecret"value="xxxxxx"/>
    <add  key="AccessToken"value="xxx-xxx"/>
    <add  key="AccessTokenSecret"value="xxxxxx"/>
    <addkey="WordsToSearch"value="#twitter, twitter "/>
  </appSettings>
</configuration>

Ajouter la dll twitterizer au projet. Un package nuGet existe mais à l'heure ou j'écris cet article il y a un problème de compatibilité avec la DLL Json (Erreur: Unable to parse Json).

Je vous conseil donc de télécharger les dll sur le site officiel : http://www.twitterizer.net/downloads/

Dans le fichier program.cs importer les DLL suivantes :

using Twitterizer;
using System.Configuration;

C'est parti pour la recherche:

SearchOptions options = new SearchOptions()
{
PageNumber = 1,
NumberPerPage = 10,
IncludeEntities = true // Pour avoir seulement les tweets avec entités (hashtag, liens, photos, ...)
};
  
OAuthTokens tokens = new OAuthTokens
{
ConsumerKey = ConfigurationManager.AppSettings["ConsumerKey"],
ConsumerSecret = ConfigurationManager.AppSettings["ConsumerSecret"],
AccessToken = ConfigurationManager.AppSettings["AccessToken"],
AccessTokenSecret = ConfigurationManager.AppSettings["AccessTokenSecret"]
};
  
string[] words = ConfigurationManager.AppSettings["WordsToSearch"].Split(',');
  
foreach (var word in words)
{
TwitterResponse<TwitterSearchResultCollection> searchResult = TwitterSearch.Search(tokens, word, options);
foreach (var tweet in searchResult.ResponseObject)
{
// -- Faire ici ce que vous voullez ex. Tweet.Text pour obtenir le text
}
}

Et voila !

Autres fonctions intéressantes:

- Obtenir l'image d'un tweet:

foreach (Twitterizer.Entities.TwitterEntity te in tweet.Entities)
{
if (te.GetType() == (typeof(Twitterizer.Entities.TwitterMediaEntity)))
{
photoUrl = ((Twitterizer.Entities.TwitterMediaEntity)te).MediaUrl;
photoId = ((Twitterizer.Entities.TwitterMediaEntity)te).Id;
}
}

Si vous souhaité récupérer des images en provenance d'instagram laisser un commentaire je vous expliquerais la manip.

- Répondre a un tweet:

StatusUpdateOptions options = new StatusUpdateOptions();
options.InReplyToStatusId = tweet.TweetId;  
TwitterResponse<TwitterStatus> replyResult = TwitterStatus.Update(tokens, "@" + tweet.FromUserScreenName + " Hello !", options);
if (replyResult.Result == RequestResult.Success)
{
       LogInfo("Reply sent to " + user.Id + " - " + user.ScreenName);
}

- Obtenir des informations sur un utilisateur:

TwitterResponse<TwitterUser> tweetUser = TwitterUser.Show(tokens, tweet.FromUserId);
if (tweetUser.Result == RequestResult.RateLimited)
{
LogInfo("Maximun queries per hour done");
}
string username=user.ScreenName;

Laisser un commentaire ci-dessous pour tout autre question concernant Twitterizer ! Merci