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,而不是消费者密钥,如上所述。
我正在使用 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,而不是消费者密钥,如上所述。