#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 Хорошо, тогда вы можете проголосовать за этот ответ и принять его (зеленая галочка).