Я использую следующий скрипт Google, чтобы следить за пользователями твиттера, и он отлично работает.
var twitterKeys= {
TWITTER_CONSUMER_KEY: "xxx",
TWITTER_CONSUMER_SECRET: "xxxx",
TWITTER_ACCESS_TOKEN: "xxxx",
TWITTER_ACCESS_SECRET: "xxxx"
};
var props = PropertiesService.getScriptProperties();
props.setProperties(twitterKeys);
var twit = new Twitter.OAuth(props);
var service = new Twitter.OAuth(props);
if ( service.hasAccess() ) {
var url = 'https://api.twitter.com/1.1/friendships/create.json';
var payload = {
screen_name: 'username',
};
var response = service.fetch(url, {
method: 'post',
payload: payload
});
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
}
}
Теперь я хотел бы искать имена пользователей в твиттере и следил за информацией, приведенной здесь:
https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-search
Я исправил свой код, изменив URL API, изменив полезную нагрузку и изменив метод с 'post' на 'get'.
Вот код, который у меня сейчас есть:
var twitterKeys= {
TWITTER_CONSUMER_KEY: "xxx",
TWITTER_CONSUMER_SECRET: "xxxx",
TWITTER_ACCESS_TOKEN: "xxxx",
TWITTER_ACCESS_SECRET: "xxxx"
};
var props = PropertiesService.getScriptProperties();
props.setProperties(twitterKeys);
var twit = new Twitter.OAuth(props);
var service = new Twitter.OAuth(props);
if ( service.hasAccess() ) {
var url = 'https://api.twitter.com/1.1/users/search.json';
var payload = {
q: 'test',
};
var response = service.fetch(url, {
method: 'get',
payload: payload
});
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
}
}
Это не работает, и я получаю следующую ошибку:
Запрос не выполнен для https://api.twitter.com/1.1/users/search.json, возвращен код 401. Усеченный ответ сервера: {"errors": [{"code": 32, "message": "Не удалось аутентифицировать вас."}]} (Используйте muteHttpExceptions возможность просмотра полного ответа) (строка 450, файл «Сервис», проект «Твиттер lib»)
Я несколько раз исправлял этот код подобными способами (например, для отключения пользователей), и он работал хорошо.
Есть идеи, почему это не удается?