2017-01-15 1 views
0

J'ai une liste d'utilisateurs pour poster un message sur twitter (poster un message sur notre compte puis faire référence à ces utilisateurs en utilisant @ID), en utilisant tweetinvi. actuellement, c'est mon code. J'essaie de poster un message toutes les 36 secondes pour obtenir le maximum de tweets possibles par jour (2400).poster un message sur twitter en utilisant tweetinvi ne publie pas toujours le tweet

static void Main(string[] args) 
    { 

     allUsers = analytics.getAllUniqueUserID(); 



     System.Timers.Timer aTimer = new System.Timers.Timer(); 
     aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); 

     aTimer.Interval = 36000; 
     aTimer.Enabled = true; 

     while (true) 
     { 
      //just to keep console open 
     } 
    } 

avec l'événement chronométré comme suit

private static void OnTimedEvent(object source, ElapsedEventArgs e) 
    { 

     lastMessaged = analytics.getLastUserIDMessaged() + 1; 
     string identifier = allUsers[lastMessaged]; 
     string message = "Hello"; 

     TwitterAccess.publicTweetToUsers(identifier, message); 
     analytics.writeLastIDToFile(lastMessaged.ToString()); 



    } 

avec publicTweetToUsers comme suit

public static void publicTweetToUsers(string identifier, string message) 
    { 
     Auth.SetUserCredentials(key, secret, token, tokenSecret); 
     var user = User.GetAuthenticatedUser(); 

     var tweet = Tweet.PublishTweet(string.Format("{0} {1}",  identifier, message)); 

    } 

S'il vous plaît noter que les valeurs clés, secret, jeton et tokenSecret sont attribués et le compte n'enregistre en et envoyer des tweets, il ne le fait pas consitently, il va envoyer pendant une certaine durée et ensuite arrêter. Veuillez corriger le bug s'il y en a un, ou me diriger vers une solution viable. merci

Répondre

3

Je suis le développeur de Tweetinvi.

Comme vous l'avez mentionné la limite théorique de tweets par jour autorisée par Twitter est de 2400/jour divisé en segments de 30 minutes (50 toutes les 30 minutes). Bien que, afin d'empêcher le spam sur Twitter, leur serveur applique des tests non documentés pour s'assurer que le tweet est un tweet "légitime". Donc, avant de considérer que le problème provient de la bibliothèque, analysons ce que Twitter renvoie et essayons de réduire légèrement le nombre de tweets que vous publiez chaque jour. Augmentez le temporisateur à 0,5 seconde (1440 tweets/jour).

  1. Vérifiez l'erreur renvoyée par Twitter (https://github.com/linvi/tweetinvi/wiki/Exception-Handling#per-request-exception-handling)

l'erreur, vous trouverez 2 propriétés utiles: TwitterExceptionInfos et TwitterDescription. Si ces 2 propriétés ne vous aident pas vraiment à identifier le problème, veuillez partager toutes les informations disponibles dans le TwitterException et je les examinerai de plus près.

Passez un bon week-end!

+0

Merci pour votre réponse. D'une manière ou d'une autre, mon programme ne trouve pas l'exception TwitterEx mentionnée dans cet article, il dit simplement qu'il manque un espace de noms ... ai-je ajouté tweetinvi de manière incorrecte? en utilisant Visual Studio 2010: xD fixe a oublié d'ajouter en utilisant Tweetinvi.Exceptions; – pieter

+0

Super, laissez-moi savoir quand vous avez plus d'informations! – Linvi

+0

fonctionne parfaitement, en changeant le délai pour envoyer toutes les 60 secondes semble avoir fait le tour, également mis à niveau vers une nouvelle version de tweetinvi dans le processus, merci beaucoup pour votre réponse !! – pieter