2013-03-13 166 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

相关问题