2011-01-07 2 views
1

Ich benutze die neueste stabile von TweetSharp von Codeplex in einem VS2008 C# -Projekt gebaut. Ich schreibe das Projekt in Bezug auf TwitterService nicht FluentTwitter.Delete Inbox Messages mit TweetSharp

Ich habe eine Anwendung, die authentifiziert, dann fungiert als ein Listener. Es sitzt herum und fragt Twitter in regelmäßigen Abständen auf der Suche nach direkten Nachrichten. Nachdem ich die letzten direkten Nachrichten geholt habe (was gut funktioniert), verarbeite ich sie und mache Sachen, dann möchte ich sie aus meinem Posteingang entfernen, also verarbeite ich sie nie wieder.

Der erste Ort, an dem ich suchte, war TwitterServer.DeleteDirectMessage (int msgId), aber da ich die DMs nicht geschrieben habe, kann ich sie natürlich nicht löschen. Ich weiß, dass es eine Möglichkeit gibt, dies zu tun, denn wenn Sie sich auf der Twitter-Webseite anmelden, können Sie einfach DMs einzeln aus Ihrem Posteingang löschen.

Zwei Fragen: 1. So löschen Sie DMs aus meinem Posteingang? 2. Wo ist die vollständige Dokumentation? (Entschuldigt, wenn dies ist offensichtlich, und ich es verpasst, aber es ist nicht unter der „Dokumentation“ Vorsprung auf TweetSharp der Codeplex-Website. Das einzige, was unter „Dokumentation“ ist mehrere primitive Beispiele.)

 //Authenticate... 

     //Declarations: 
     string message = null; 
     List<string> messages = new List<string>(); 
     IEnumerable<TwitterDirectMessage> directMessages = service.ListDirectMessagesReceived(); 

     //Fetch all current direct message: 
     foreach (TwitterDirectMessage directMessage in directMessages) 
     { 
      //Store each message into a list, in reverse older: 
      message = /*"[" + directMessage.CreatedDate.ToString() + "]" +*/ directMessage.Text; 
      messages.Insert(0, message); 

      //Delete each DM to ensure that is is never fetched again: 
      // ?? 
     } 

     //Do stuff with DMs 

Antwort

1

Wollen Sie wirklich wollen DMs vom Server löschen? Was ist, wenn der Benutzer zu twitter.com zurückkehrt und sie dort nachschlagen möchte?

Ein anderer Ansatz könnte darin bestehen, DMs, die zuvor angezeigt wurden, zu verfolgen und sie später auf der Clientseite herauszufiltern, bevor sie erneut verarbeitet werden.

+0

Danke. Ja, mein aktueller Hack war, einen Zeitstempel zu speichern, wenn ich die DMs abhole/verarbeite. Dann werden alle DM vor dieser Zeit als "verarbeitet" betrachtet. Aber ja, ich möchte die DMs wirklich komplett löschen. Ich benutze Twitter tatsächlich als groben Nachrichtenbus. Der Benutzer des Produkts würde sich niemals tatsächlich bei Twitter anmelden, und das Speichern des Nachrichtenverlaufs wäre überhaupt nicht wichtig. – kmarks2