Я пытаюсь найти t.co
(обязательное сокращение URL-адреса для твиттеров) с использованием API-интерфейсов Premium Search для твиттеров. Используя стандартный API поиска, я могу получить результаты, но с API премиум-класса у меня проблемы.
Я использую пакет twitter
npm.
const Twitter = require('twitter')
const client = new Twitter({
consumer_key: '...',
consumer_secret: '...',
access_token_key: '...',
access_token_secret: '...'
})
... это то, что работает при вызове стандартного API поиска:
client.get('search/tweets', { q: 'https://t.co/ qwjhdxDp9z' }, function(error, tweets, response) {
console.log(tweets)
})
... но это, используя API расширенного поиска, завершается ошибкой
let uri = 'https://t.co/ qwjhdxDp9z'
let res = encodeURIComponent(uri)
client.get('tweets/search/fullarchive/prod', { query: uri, fromDate: '200603220000', toDate: '201910141338' }, function(error, tweets, response) {
console.log(tweets)
})
Я предполагаю, что это приводит к сбою URLкодирование, но если я не закодирую URL, он возвращает эту ошибку:
сообщение: «При обработке вашего запроса произошли ошибки: нет подходящей альтернативы в символе \ '/ \' (в позиции 7), нет подходящей альтернативы для символа \ '/ \' (в позиции 8)
При использовании вышеуказанного подхода поиск нормальной строки, такой как banana
, работает нормально, просто при поиске URL-адресов этоУ меня есть проблемы.
*note I have edited the twitter urls above with a space as I'm not allowed to post URL shorteners here
ОБНОВЛЕНИЕ: для структурирования вышеуказанных поисковых запросов я использую информацию из документации по API поиска в Твиттере здесь: https://developer.twitter.com/en/docs/tweets/search/api-reference/premium-search