2013-03-13 10 views
8

Sto cercando di recuperare i tweet pubblici da un'applicazione lato server, utilizzando application-only authentication (nessun contesto utente).Autenticazione solo per applicazioni API di Twitter (con TweetSharp)

Il seguente codice funziona bene:

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); 

Tuttavia mi sembra di capire da questo diagramma che non dovrebbe essere necessario fornire il token di accesso/segreto:

Application-only authentication

Tuttavia quando ho rimuovere la chiamata a AuthenticateWith, ListTweetsOnUserTimeline restituisce null.

È una limitazione della libreria, in caso contrario, come posso farlo?

EDIT

Aas quanto posso dire, questo chiama il metodo GET statuses/user_timeline che deve supportare l'autenticazione applicazione sola, come da documentation:

metodi API che supportano questa forma di autenticazione conterrà due limiti di velocità nella sua documentazione, uno per utente (per autenticazione utente dell'applicazione) e l'altro per app (per questa forma di autenticazione solo per applicazione)

Il metodo GET statuses/user_timeline ha questi 2 limiti indicati nella relativa documentazione.

+1

qualsiasi fortuna con questo metodo? – cDima

+0

Per chi è interessato, il problema su GitHub: https://github.com/danielcrenna/tweetsharp/issues/80 –

risposta

1

Penso che questo non sia un limite della libreria, ma una limitazione dell'API di Twitter.

Per quanto ne so, il metodo ListTweetsOnUserTimeline() utilizza la chiamata API status/user_timeline.

GET statuses/user_timeline

Come si può vedere, questa chiamata richiede l'autenticazione.

È possibile provare a utilizzare l'API di streaming per ottenere gli stati. Non posso aiutarti qui poiché ho solo esperienza con flussi di utenti, non pubblici.

Public streams

Inoltre, il TweetSharp ha alcuni problemi con i flussi, ho dovuto passare alla libreria Linq2Twitter.

+0

Penso che questo metodo dovrebbe supportare l'autenticazione solo per l'applicazione, che immagino sia una forma di autenticazione, da cui il ' Autenticazione: obbligatorio (vedi le mie modifiche nella domanda). –

+0

Da quello che ho potuto leggere, non credo che si possano usare gli stream senza l'autenticazione dell'utente. – KronoS

Problemi correlati