2013-03-13 162 views
8

我試圖從服務器端應用程序使用application-only authentication(無用戶上下文)檢索公共推文。Twitter API應用程序唯一身份驗證(使用TweetSharp)

下面的代碼工作正常:

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

但是我從這個圖中聚集,它不應該有必要提供的訪問令牌/祕密:

Application-only authentication

然而,當我刪除對AuthenticateWith的呼叫,ListTweetsOnUserTimeline返回null。

這是圖書館的限制,如果沒有,我該怎麼辦?

編輯

的Aas據我所知,這將調用GET statuses/user_timeline方法應該支持應用程序的唯一身份驗證,按照該documentation:支持這種形式的身份驗證

API方法將在其文檔中包含兩個速率限制,一個是每個用戶(用於應用程序用戶認證),另一個是每個應用程序(用於這種形式的純應用程序認證)

GET statuses/user_timeline方法在其文檔中顯示了這2個限制。

+1

這種方法有什麼好運? – cDima 2013-03-20 03:43:03

+0

對於那些有興趣的,在GitHub上的問題:https://github.com/danielcrenna/tweetsharp/issues/80 – 2013-05-14 00:42:19

回答

1

我認爲這不是對圖書館的限制,而是對Twitter API的限制。

據我所知,ListTweetsOnUserTimeline()方法使用狀態/ user_timeline API調用。

GET statuses/user_timeline

正如你所看到的,這個調用需要驗證。

您可以嘗試使用Streaming API獲取狀態。我無法幫助你,因爲我只有用戶流的經驗,而不是公開的。

Public streams

此外,TweetSharp有一些問題,溪流,我只好改用Linq2Twitter庫。

+0

我認爲這種方法應該支持應用程序唯一身份驗證,我認爲它是一種身份驗證的形式,因此'身份驗證:必需'(參見我在編輯中的問題)。 – 2013-03-13 22:07:42

+0

從我已經能夠閱讀的內容中,我不相信你可以使用流而不需要用戶進行身份驗證。 – KronoS 2013-08-14 19:49:35

相關問題