よろしくお願いいたします。
既にTitter DeveloperでのAPI登録などは完了しております。
参考サイトと資料:
Google Apps ScriptでTwitterに投稿するスクリプト
https://moripro.net/gas-twitter-bot/#i-4
【GAS】Google Apps Scriptで動作するTwitter Botが突然動作しなくなってしまった。
https://teratail.com/questions/240990
まずは上記サイトに従って、コードの貼り付けとdeveloperツールスプレッドシート各種の設定を行いました。
'use strict';
function getInstance(consumer_key, consumer_secret) {
return new TwitterWebService_(consumer_key, consumer_secret);
}
var TwitterWebService_ = function (consumer_key, consumer_secret) {
this.consumer_key = consumer_key;
this.consumer_secret = consumer_secret;
}
TwitterWebService_.prototype.getService = function() {
return OAuth1.createService('Twitter')
.setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
.setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
.setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
.setConsumerKey(this.consumer_key)
.setConsumerSecret(this.consumer_secret)
.setCallbackFunction('authCallback')
.setPropertyStore(PropertiesService.getUserProperties())
}
TwitterWebService_.prototype.authorize = function() {
var service = this.getService();
if (service.hasAccess()) {
Logger.log('Already authorized');
} else {
var authorizationUrl = service.authorize();
Logger.log('Open the following URL and re-run the script: %s', authorizationUrl);
}
}
TwitterWebService_.prototype.reset = function() {
var service = this.getService();
service.reset();
}
TwitterWebService_.prototype.authCallback = function(request) {
var service = this.getService();
var isAuthorized = service.handleCallback(request);
var mimeType = ContentService.MimeType.TEXT;
if (isAuthorized) {
return ContentService.createTextOutput('Success').setMimeType(mimeType);
} else {
return ContentService.createTextOutput('Denied').setMimeType(mimeType);
}
}
//認証用インスタンスの生成
var twitter = TwitterWebService.getInstance(
"xxxxxxxxxxxxxxxxx",//API Key
"xxxxxxxxxxxxxxxxx"//API secret key
);
//アプリを連携認証する
function authorize() {
twitter.authorize();
}
//認証を解除する
function reset() {
twitter.reset();
}
//認証後のコールバック
function authCallback(request) {
return twitter.authCallback(request);
}
上記をスクリプトエディタに記載しました。
最終的にAuthorise実行を行ったところ、
「Property store is required.(行 43、ファイル「Utilities」)」
というエラーが発生。
調べてみるとどうやら
原因は「ChromeV8搭載のApps Scriptランタイム」が有効である可能性
とありましたので2つ目のURLの手順通り、記載URLへアクセス後コピー作成から
手順通り行い、ライブラリのOAuth1のバージョンを18選択を手順通り進めました。
すると今度は
「ReferenceError: TwitterWebService is not defined(行 48、ファイル「TwitterWebService」、プロジェクト」
エラーが発生。
このエラー前にはtwitterがGoogleアカウントへアクセスしている旨のポップアップが開いて許可を押したのち、こちらのエラーとなってしまいました。
何か原因と解決方法などございますでしょうか。
情報が大きく足りていない可能性がありますので、おっしゃっていただけますと幸いです。
あなたの回答
tips
プレビュー