【问题标题】:Twitter API application-only authentication (with TweetSharp)Twitter API 仅应用程序身份验证(使用 TweetSharp)
【发布时间】:2013-03-13 03:31:54
【问题描述】:

我正在尝试使用application-only authentication(无用户上下文)从服务器端应用程序检索公共推文。

以下代码可以正常工作:

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

但是,我从该图中了解到,没有必要提供访问令牌/秘密:

但是,当我删除对 AuthenticateWith 的调用时,ListTweetsOnUserTimeline 返回 null。

这是图书馆的限制,如果不是,我该怎么办?

编辑

据我所知,这调用了应该支持仅应用程序身份验证的GET statuses/user_timeline 方法,根据documentation

支持这种形式的身份验证的 API 方法将在其文档中包含两个速率限制,一个是每个用户(用于应用程序用户身份验证),另一个是每个应用程序(用于这种形式的仅应用程序身份验证)

GET statuses/user_timeline 方法在其文档中显示了这两个限制。

【问题讨论】:

标签: c# twitter tweetsharp


【解决方案1】:

我认为这不是库的限制,而是 Twitter API 的限制。

据我所知,ListTweetsOnUserTimeline() 方法使用 statuses/user_timeline API 调用。

GET statuses/user_timeline

如您所见,此调用需要身份验证。

您可以尝试使用 Streaming API 来获取状态。我在这里帮不了你,因为我只有用户流的经验,而不是公开的。

Public streams

此外,TweetSharp 在流方面存在一些问题,我不得不切换到 Linq2Twitter 库。

【讨论】:

  • 我认为这种方法应该支持仅限应用程序的身份验证,我猜这是一种身份验证形式,因此是Authentication: Required(请参阅我在问题中的编辑)。
  • 据我所知,我不相信您可以在不经过用户身份验证的情况下使用流。
【解决方案2】:

确认不支持: https://github.com/danielcrenna/tweetsharp/issues/80#issuecomment-19862455

由于该项目即将退役,因此没有计划增加对它的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-29
    • 2018-12-26
    • 2015-06-10
    • 2013-06-13
    • 2013-03-08
    • 2018-07-17
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多