2013-03-13 2 views
8

Ich versuche öffentliche Tweets von einer serverseitigen Anwendung mit application-only authentication abrufen (kein Benutzerkontext).Twitter-API-Anwendung-Authentifizierung (mit TweetSharp)

Der folgende Code funktioniert:

var service = new TwitterService("<consumer key>", "<consumer secret>"); 
service.AuthenticateWith("<access token>", "<access token secret>"); 

var options = new ListTweetsOnUserTimelineOptions { ScreenName = "billgates" }; 

foreach (var tweet in service.ListTweetsOnUserTimeline(options)) 
    Console.WriteLine(tweet.Text); 

Jedoch habe ich aus diesem Diagramm entnehmen, dass es nicht notwendig sein sollte die Zugriffstoken/geheim zu bieten:

Application-only authentication

Jedoch, wenn ich Entfernen Sie den Anruf zu AuthenticateWith, ListTweetsOnUserTimeline gibt null zurück.

Es ist eine Einschränkung der Bibliothek, wenn nicht, wie kann ich es tun?

EDIT

Aas weit wie ich kann sagen, dies ruft die GET statuses/user_timeline Methode, die Anwendung nur für die Authentifizierung, gemäß den documentation unterstützen soll:

API-Methoden, die diese Form der Authentifizierung unterstützen enthält zwei Ratenbeschränkungen in ihrer Dokumentation, eine pro Benutzer (für die Benutzerauthentifizierung) und die andere pro App (für diese Form der reinen Anwendungsauthentifizierung)

Die GET statuses/user_timeline Methode hat diese 2 Grenzwerte in ihrer Dokumentation gezeigt.

+1

Glück mit dieser Methode? – cDima

+0

Für Interessierte, das Problem auf GitHub: https://github.com/danielcrenna/tweetsharp/issues/80 –

Antwort

1

Ich denke, dies ist keine Einschränkung der Bibliothek, aber die Beschränkung der Twitter-API.

Soweit ich weiß, die ListTweetsOnUserTimeline() -Methode verwendet Status/user_timeline API-Aufruf.

GET statuses/user_timeline

Wie Sie sehen können, erfordert dieser Aufruf Authentifizierung.

Sie können versuchen, die Streaming API zum Abrufen von Status zu verwenden. Ich kann dir hier nicht helfen, da ich nur Erfahrung mit User Streams habe, nicht öffentlich.

Public streams

Neben der TweetSharp einige Probleme mit Bächen hat, musste ich Linq2Twitter Bibliothek wechseln.

+0

Ich denke, diese Methode sollte Application-only-Authentifizierung unterstützen, die ich denke, es ist eine Form der Authentifizierung, daher die ' Authentifizierung: Erforderlich' (siehe meine Änderungen in der Frage). –

+0

Von dem, was ich lesen konnte, glaube ich nicht, dass Sie Streams verwenden können, ohne mit dem Benutzer zu authentifizieren. – KronoS