ListTweetOnUserTimeline returns 空

ListTweetOnUserTimeline returns null

我正在使用 C# 的 TweetSharp,我可以通过它成功地将推文发布到 Twitter。

但是,我正在尝试从帐户的时间轴中读取最新的推文,但每次我尝试获取数据时,我总是返回 null。下面的代码returns null

  string consumerKey = <consumerKey>;
  string consumerSecret = <consumerSecret>;

  TwitterService service = new TwitterService(consumerKey, consumerSecret);
        service.AuthenticateWith(consumerKey, consumerSecret);
        var options = new ListTweetsOnUserTimelineOptions()
        {
            ScreenName = screenName,
            SinceId = 0,
            Count = 5
        };
       var currentTweets = service.ListTweetsOnUserTimeline(options);

我已经尝试使用 UserId 而不是 ScreenName,但我仍然得到 null 作为 currentTweets 的结果。我能找到的所有例子都指向这个方法,但它不起作用。

有什么想法吗?

我认为您的问题出在 AuthenticateWith 调用上。您似乎再次传递了 consumer 令牌和秘密,但是仅采用两个参数的 AuthenticateWith 重载需要一个 user 令牌和秘密。我怀疑您因此收到了未经授权的响应(不确定为什么没有收到错误)。

我建议删除 AuthenticateWith 调用(您已经在构造函数中提供了消费者令牌),或者更改它以便传递有效用户令牌的详细信息而不是消费者令牌。

您还可以在通话完成后检查 Twitter 服务上的响应 属性,并检查 http 状态 code/reason phrase/content 等,看看是否能提供更多详细信息关于出了什么问题。

如果您使用的是旧版本的 .NET,那么您可能在后台使用 TLS 1.1 与 Twitter 进行通信。如果您这样做,则 AuthenticateWith 将无提示地失败,并且什么都不起作用。

您需要添加代码

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

为了完成这项工作。

此外,您应该将 accessToken 和 accessTokenSecret 传递给 AuthenticateWith,而不是消费者密钥,如上所述。