2013-03-13 19 views
8

Próbuję pobrać publiczne tweety z aplikacji po stronie serwera, używając application-only authentication (bez kontekstu użytkownika).Uwierzytelnianie aplikacji Twitter API wyłącznie przy użyciu TweetSharp

Poniższy kod działa poprawnie:

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

jednak wnoszę z tego schematu, że nie powinno być konieczne, aby zapewnić token dostępowy/sekret:

Application-only authentication

Jednak kiedy usuń wywołanie do AuthenticateWith, ListTweetsOnUserTimeline zwraca wartość null.

Jest to ograniczenie biblioteki, jeśli nie, jak mogę to zrobić?

EDIT

Aas ile mogę powiedzieć, to wywołuje metodę GET statuses/user_timeline który powinien obsługiwać uwierzytelnianie aplikacji tylko, jak na documentation:

metod API, które obsługują tę formę uwierzytelnienia będzie zawierał w swoim dokumencie dwie limity stawek, jedną dla każdego użytkownika (dla uwierzytelnienia użytkownika aplikacji), a drugą dla aplikacji (dla tej formy uwierzytelniania tylko dla aplikacji)

Metodę GET statuses/user_timeline mają te 2 ograniczenia wskazane w dokumentacji.

+1

szczęścia za pomocą tej metody? – cDima

+0

Dla zainteresowanych, problem na GitHub: https://github.com/danielcrenna/tweetsharp/issues/80 –

Odpowiedz

1

Myślę, że nie jest to ograniczenie biblioteki, ale ograniczenie Twitter API.

O ile mi wiadomo, metoda ListTweetsOnUserTimeline() używa funkcji API statusów/user_timeline.

GET statuses/user_timeline

Jak widać, to wezwanie wymaga uwierzytelnienia.

Możesz spróbować użyć Streaming API do pobierania statusów. Nie mogę ci tu pomóc, ponieważ mam tylko doświadczenia ze strumieniami użytkowników, a nie publiczne.

Public streams

Poza tym TweetSharp ma pewne problemy ze strumieniami, musiałem przejść do biblioteki Linq2Twitter.

+0

Myślę, że ta metoda powinna obsługiwać tylko uwierzytelnianie aplikacji, co chyba jest to forma uwierzytelniania, stąd " Uwierzytelnianie: wymagane "(zobacz moje zmiany w pytaniu). –

+0

Z tego, co udało mi się odczytać, nie wierzę, że możesz używać strumieni bez uwierzytelniania użytkownika. – KronoS

Powiązane problemy