Почему эти твиты не публикуются с помощью Tweetinvi?

Я пытаюсь опубликовать твит с помощью 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();
}

person Dan Cook    schedule 13.05.2021    source источник
comment
Трудно сказать, какие коды ошибок или ответов возвращаются?   -  person Andy Piper    schedule 14.05.2021
comment
переменные tweet и tweet2 остаются нулевыми, но в учебнике переменные содержат информацию   -  person Dan Cook    schedule 14.05.2021
comment
Кодов ошибок нет, и я не уверен в кодах ответов @AndyPiper   -  person Dan Cook    schedule 14.05.2021
comment
Используйте Tweetinvi v5.0. Это будет лучше поддерживать ошибки, и мы сможем лучше помочь вам. Также помните, что вы не можете публиковать одно и то же содержание твита за короткий промежуток времени.   -  person Linvi    schedule 18.05.2021


Ответы (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 при попытке опубликовать свои твиты (это может быть то, что происходит с вами, поэтому рекомендуется проверить это).

Разрешения приложения

Кроме того, если вам необходимо изменить уровень разрешений вашего приложения, все его пользовательские токены будут отозваны, и вам нужно будет выпустить новые и соответствующим образом обновить свой код:

Если уровень разрешений изменен, все пользовательские токены, уже выданные этому приложению Twitter, должны быть удалены, а пользователи должны повторно авторизовать приложение, чтобы токен наследовал обновленные разрешения.

person Timothy G.    schedule 22.05.2021