Пытаюсь разобраться в некоторых основных функциях твиттера с помощью type script. Я понятия не имею, почему это происходит, но не ретвитует твиты, содержащие #100DaysOfCode

#typescript #visual-studio #twitter

Вопрос:

Помощь оценена по достоинству. Я действительно понятия не имею, что происходит. Я также никогда раньше не использовал typescript или JavaScript. Код запускается в цикле, но на самом деле он просто не ретвитит ничего, содержащего хэштег

 import Twit, { Response } from 'twit';

const Twitter = new Twit(require('./config'));

const mediaArtsSearch: Twit.Params = {
  q: '#100DaysOfCode',
  count: 100,
  // eslint-disable-next-line @typescript-eslint/camelcase
  result_type: 'recent',
};

const retweetLatest = () => {
  Twitter.get('search/tweets', mediaArtsSearch, (error: Error, data: any) => {
    console.log(error, data);
    if (!error) {
      const retweetId = data.statuses[0].id_str;     //finds id of tweet, labels it as retweetid
      Twitter.post(
        'statuses/retweet/'   retweetId,            //retweets the tweet
        {},
        (error: Error, response: Response) => {
          if (response) {
            console.log(
              'Success! Check your bot, it should have retweeted something.',
            );
          }
          if (error) {
            console.log('There was an error with Twitter:', error);
          }
        },
      );
    } else {
      console.log('There was an error with your hashtag search:', error);
    }
  });
};

retweetLatest();
setInterval(retweetLatest, 1000 * 20);
 

Комментарии:

1. Можете ли вы подробнее рассказать о том, что вы получаете ? Видите ли вы какие-либо журналы консоли, указывающие на успех (при получении или ретвите), не видя фактических твитов в Twitter ? Или вы получаете какие-то ошибки в этих запросах?

2. я просто получаю кучу этого: Произошла ошибка с Твиттером: Ошибка: приложение только для чтения не может опубликовать. на объекте.экспорт.makeTwitError (C:UsersWookiyour-next-projectnode_modulestwitlibhelpers.js:74:13) при выполнении запроса (C:UsersWookiyour-next-projectnode_modulestwitlibtwitter.js:344:25) по запросу.<анонимный> (C:UsersWookiyour-next-projectnode_modulestwitlibtwitter.js:364:7) по запросу.испускать (события.js:387:35) в Gunzip.<аноним><аноним> (C:UsersWookiyour-next-projectnode_modulesrequestrequest.js:1076:12)

3. в Object.onceWrapper (события.js:481:28) в Gunzip.emit (события.js:375:28) в endReadableNT (внутренний/потоки/читаемый.js:1317:12) в processTicksAndRejections (внутренний/процесс/task_queues.js:82:21) { код: null, все ошибки: [ { запрос: ‘/1.1/статусы/ретвит/1436742109759934466.json’, ошибка: ‘Чтение-только приложение не может ПУБЛИКОВАТЬ.»}], явно в Twitter: { запрос: «/1.1/статусы/ретвит/1436742109759934466.json», ошибка: «приложение только для чтения не может ПУБЛИКОВАТЬ.»}, статускод: 401

Ответ №1:

Я думаю, что сообщения об ошибках, которые вы добавили в комментарии, довольно ясны : существует проблема с авторизацией. То, как вы называете API twitter, позволяет вам ПОЛУЧАТЬ (поисковые твиты…), но не ПУБЛИКОВАТЬ твиты.

Причин может быть несколько:

  • Вы не добавляете (правильно?) элемент аутентификации по вашему запросу (токен и т. Д.).
  • Электронная почта вашей учетной записи ожидает подтверждения.
  • Вы должны разрешить «читать писать» в настройках учетной записи разработчика Twitter. И даже если чтение запись уже выбраны, вам, возможно, придется нажать на них еще раз (как описано ниже).:

В случае, если это поможет кому-то еще: страница разработчика twitter уже показала доступ для чтения и записи для моего приложения, но запрос на авторизацию по-прежнему запрашивал доступ только для чтения. Мне пришлось снова нажать» чтение запись «в настройках разработчика (несмотря на то, что он уже был выбран), затем нажать «Сохранить». Похоже, это ошибка в твиттере, вероятно, вызванная недавними изменениями API.

(найдено здесь: https://github.com/DocNow/diffengine/issues/20#issuecomment-807864651)

Комментарии:

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

2. @WnnaC-Mypython Хорошо, тогда вы можете проголосовать за этот ответ и принять его (зеленая галочка).