2014-05-06 3 views
0

J'essaye d'envoyer un tweet en utilisant LinqToTwitter. Mon problème est que ça ne marche presque jamais. Je l'ai eu à travailler peut-être trois fois sur trente, et c'est généralement quand j'essaie de déboguer. Je pense que cela pourrait avoir quelque chose à voir avec le timing et l'authentification, mais je ne sais pas comment le faire. Le code s'exécute sans erreurs, mais aucun tweet n'est généré.LinqToTwitter La mise à jour du statut fonctionne seulement parfois

public static async Task SendTweetAsync(string text) 
    { 
     // Get the authorization credentials 
     var auth = GetCredentials(); 

     // Create the twitter context 
     var ctx = new TwitterContext(auth); 

     try 
     { 
      Status responseTweet = await ctx.TweetAsync(text); 
     } 
     catch (Exception e) { 
      throw e; 
     } 
    } 

    private static AspNetAuthorizer GetCredentials() 
    { 
     return new AspNetAuthorizer 
     { 
      CredentialStore = new InMemoryCredentialStore() 
      { 
       ConsumerSecret = "##########", 
       ConsumerKey = "##########", 
       OAuthToken = "##########", 
       OAuthTokenSecret = "##########", 
       UserID = ########## 
      } 
     }; 
    } 
+2

N'attrape pas une exception juste pour la relancer. Vous effacez la trace de la pile et n'ajoutez aucune valeur supplémentaire. – Servy

+0

@Servy, merci. Je garderai cela à l'esprit - c'était une solution temporaire, bien que mauvaise. –

+0

Just fyi J'ai des problèmes avec l'API de streaming linqtotwitter juste le dernier jour; tout fonctionnait bien avant avec les mêmes binaires. Je ne sais pas s'il y a un problème avec la bibliothèque par rapport à Twitter ou quoi. –

Répondre

0

Je ne sais pas ce qui est arrivé à la réponse qui était là avant, par @JoeMayo, mais la chose qui a fonctionné pour moi était de changer le AspNetAuthorizer à SingleUserAuthorizer.

private static SingleUserAuthorizer GetCredentials() 
{ 
    return new SingleUserAuthorizer 
    { 
     CredentialStore = new InMemoryCredentialStore() 
     { 
      ConsumerSecret = "##########", 
      ConsumerKey = "##########", 
      OAuthToken = "##########", 
      OAuthTokenSecret = "##########", 
      UserID = ########## 
     } 
    }; 
} 

De plus, j'ai ajouté await auth.AuthorizeAsync();

var auth = GetCredentials(); 

await auth.AuthorizeAsync(); 

Comme je l'ai dit, le crédit devrait vraiment aller à @JoeMayo, mais sa réponse est parti.

Questions connexes