为啥这些推文无法使用 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 发布?的主要内容,如果未能解决你的问题,请参考以下文章

在 tweetinvi 中查找推文的 tweetID

Tweetinvi 接收推文很慢?备择方案?

使用静态机密对 Twitter 机器人进行身份验证?

如何获取给定回复的原始推文

自定义推文给出“32:无法验证您”。错误。知道为啥吗?

Tweetinvi - User.GetAuthenticatedUser 未被 Visual Studio 识别