为啥这些推文无法使用 Tweetinvi 发布?
Posted
技术标签:
【中文标题】为啥这些推文无法使用 Tweetinvi 发布?【英文标题】:Why are these tweets failing to publish using Tweetinvi?为什么这些推文无法使用 Tweetinvi 发布? 【发布时间】:2021-08-03 18:03:01 【问题描述】:我正在尝试通过关注this tutorial 使用 API 和 Tweetinvi 库发布推文。
当代码运行时,两条推文都不会发布。你能提供任何建议让他们发表吗?
static void Main(string[] args)
Auth.SetUserCredentials("1", "2", "3", "4");
var user = User.GetAuthenticatedUser();
Console.WriteLine(user);
var tweet = Tweet.PublishTweet("Hello from 2D_Racer");
var tweet2 = Tweet.PublishTweet("Hello World");
var timeLineTweets = Timeline.GetUserTimeline(user, 5);
foreach (var timeLineTweet in timeLineTweets)
Console.WriteLine(timeLineTweet);
Console.ReadLine();
【问题讨论】:
很难说,返回什么错误或响应码? 变量 tweet 和 tweet2 保持为空,但在教程中变量包含信息 没有错误代码,我不确定响应代码@AndyPiper 请使用Tweetinvi v5.0。它将更好地支持错误,我们可以更好地帮助您。另请记住,您无法在短时间内发布完全相同的推文内容。 【参考方案1】:您链接到的视频使用的 Tweetinvi 版本已过时。您应该升级到最新的Tweetinvi 版本。使用所述版本,您可以通过首先为用户配置TwitterClient
来发布推文,然后发布您的推文。对于时间线部分,您可以使用GetUserTimelineAsync
。
string userName = "SomeUsername";
TwitterClient userClient = new TwitterClient("CONSUMER_KEY", "CONSUMER_SECRET", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET");
var publishedTweetOne = await userClient.Tweets.PublishTweetAsync("Your first Tweets message.");
var publishedTweetTwo = await userClient.Tweets.PublishTweetAsync("Your second Tweets message.");
var timeLine = await userClient.Timelines.GetUserTimelineAsync(userName);
foreach (var tweet in timeLine)
Console.WriteLine(tweet.Text);
需要注意的是,您需要通过 Twitter 开发人员门户为您的应用程序设置正确的权限。如果您没有适当的权限,您将在尝试发布推文时收到“需要授权”TwitterExceptions
(这可能是发生在您身上的事情,因此验证这是个好主意)。
另外,如果你必须change your application's permission level,它的所有用户令牌都将被撤销,你需要发布新的并适当地更新你的代码:
如果更改权限级别,则必须丢弃已颁发给该 Twitter 应用的任何用户令牌,并且用户必须重新授权该应用,以便令牌继承更新的权限。
【讨论】:
以上是关于为啥这些推文无法使用 Tweetinvi 发布?的主要内容,如果未能解决你的问题,请参考以下文章