(Я уже прочитал решение, приведенное в Чирикать, используя Google Script , но оно не работает для меня. Пожалуйста, не удаляйте этот вопрос.)
Страница https://ctrlq.org/code/19995-google-script-to-twitter показывает способ создания твита в Google Script.
Я просто вставил предложенный там код и успешно выполнил следующие инструкции:
- Перейдите на apps.twitter.com и создайте новое приложение
- Создание токена доступа и секрета
- Включить ключ библиотеки Twitter «MKvHYYdYA4G5JJHj7hxIcoh8V4oX7X1M_» в Google Script
- Активировать «Включить вход через Twitter» в «Подробная информация о приложении» в Twitter
- Добавьте «URL обратных вызовов» в Twitter, используя мой ключ проекта Google Script: https://script.google.com/macros/d/ML3pMd5z.../usercallback
Теперь , когда я запускаю код, почти ничего не происходит, но это сообщение об ошибке: ReferenceError: "twit" is not defined. (line 22, file "Code")
.
function sendTweet(status){
status = status || "I found this snippet on @labnol's ctrlq.org";
var twitterKeys= {
TWITTER_CONSUMER_KEY: "1fZn8cBR...",
TWITTER_CONSUMER_SECRET: "588gJxh...",
TWITTER_ACCESS_TOKEN: "112c5e0...",
TWITTER_ACCESS_SECRET: "DcvV614.",
};
var props = PropertiesService.getScriptProperties();
props.setProperties(twitterKeys);
var service = new Twitter.OAuth(props);
if ( service.hasAccess() ) {
var response = twit.sendTweet(status); // ← THIS IS LINE 21
if (response) {
Logger.log("Tweet ID " + response.id_str);
} else {
// Tweet could not be sent
// Go to View -> Logs to see the error message
}
}
}
Подскажите пожалуйста как исправить этот конкретный код .
Нашел ответ в https://medium.com/javascript-in-plain-english/i-made-a-twitter-bot-from-nothing-but-a-google-sheet-ef0ba6e1b194 и просто добавил отсутствующую переменную после var service = new Twitter.OAuth(props);
:
var twit = new Twitter.OAuth(props);
Окончательный код выглядит так:
function sendTweet(){
var status = "Text to be tweeted goes here.";
var twitterKeys= {
TWITTER_CONSUMER_KEY: "1fZBR...",
TWITTER_CONSUMER_SECRET: "Ig...tzpa4E...",
TWITTER_ACCESS_TOKEN: "1125...90...",
TWITTER_ACCESS_SECRET: "...22GrDcv...",
};
var props = PropertiesService.getScriptProperties();
props.setProperties(twitterKeys);
var service = new Twitter.OAuth(props);
var twit = new Twitter.OAuth(props); // ← THIS WAS THE MISSING VARIABLE
if ( service.hasAccess() ) {
var response = twit.sendTweet(status);
if (response) {
Logger.log("Tweet ID " + response.id_str);
} else { }
}
}