GASを使用してTwitterに自動投稿する方法 2020/8/10 2020/12/24 FXネタ, SEネタ ~目次~ Twitter Developerアカウントの申請スプレッドシートでライブラリ「TwitterWebService」を作成するTwitter Developerに「コールバックURL」を登録するTwitterアプリと連携するGASからツイートするまとめ Twitter Developerアカウントの申請 前提:Twitterのアカウントを所持していることTwitter Developer Platformにアクセスして、「Sign in」からTwitterにサインインする既にサインイン済みの場合、この画面は出ません次のログインが完了したら~から実施してください ログインが完了したら、「Apply」をクリックしてください 次に「Apply for a developer account」をクリックしてください 次に「Hobbyist」の「Making a bot」をクリックして選択状態にして「Next」をクリックをクリックしてください 次に「国」と「アカウント名」を入力して「Next」をクリックしてください 次に、TwitterAPIを使用する目的を英語で記述してくださいグーグル翻訳で日本語を英語に変換していけばOKです200文字という制限は面倒だが、適当に文言を繋げていけば何とかなりますその下に「Twitterデータを分析しますか?」とあるので、ボタンをクリックして「No」にしてください ツイートを使用する目的を英語で入力してくださいAPIを使用する理由をそのままコピペでも大丈夫ですその下の2つの項目は「No」にしてください入力が完了したら「Next」をクリックしてください 次に入力した内容を確認して「Looks good!」をクリックしてください 利用規約を確認してくださいチェックボックスにチェックを入れて「Submit Application」をクリックしてください Twitterアカウントに設定してあるメールアドレスにメールが届きますのでメールのURLをクリックして登録を完了させてください 登録が完了するとアプリ名を入力する画面になりますアプリ名を入力して「Get keys」をクリックしてくださいアプリ名はなんでも大丈夫です APIキーとトークンが作成されましたGASで使用するためメモっておきましょう 以上でTwitter Developerアカウントの申請は完了です スプレッドシートでライブラリ「TwitterWebService」を作成する https://script.google.com/d/1rgo8rXsxi1DxI_5Xgo_t3irTw1Y5cxl2mGSkbozKsSXf2E_KBBPC3xTF/edit を開いてください「ファイル」>「コピー」をクリックしてくださいプロジェクト名を 「TwitterWebService」 に変更してください「リソース」>「ライブラリ」をクリックしてください「OAuth1」のバージョンで「18」を選択し、保存してください「ファイル」>「版を管理」をクリックしてください「Save new version」ボタンをクリックします「ファイル」>「プロジェクトのプロパティ」をクリックしてください「スクリプト ID」の値をコピーしてください グーグルスプレッドシートを新規で開いて「ツール」>「スクリプトエディタ」をクリックしてください 次に「リソース」>「ライブラリ」をクリックしてください 新規で作成したので、プロジェクト名の入力を求められますお好きなプロジェクト名を入力してください ライブラリを追加する画面が表示されます「Add a library」にコピーした「スクリプトID」を張り付けて「追加」ボタンをクリックしてください 「TwitterWebService」が表示されればOKです 次にバージョンを「1」を選択してください「Development mode」をクリックして「ON」にしてください「保存」をクリックしてライブラリを保存しましょう 以上で、ツイッターと連携するためのライブラリの導入は完了です Twitter Developerに「コールバックURL」を登録する スクリプトエディタの「ファイル」>「プロジェクトのプロパティ」をクリックしてください プロジェクトのプロパティの「スクリプトID」をコピーしてください Twitter Developer Platformにアクセスしてください画面右上の「アカウント名」>「Apps」をクリックしてください アプリの「App Settings」をクリックしてください 「Authentication settings」の「Edit」をクリックしてください 「Enable 3rd party authentication」のボタンをクリックしてください「Callback URLs」が入力できる状態になりますので、下記URLを入力してくださいhttps://script.google.com/macros/d/スクリプトID/usercallback※スクリプトIDはご自分のスクリプトIDに置き換えてください 入力が完了したら「Save」ボタンをクリックして保存してください 「App permissions」の「Edit」ボタンをクリックしてください 「Read + Write + Direct Messages」を選択して「Save」ボタンをクリックしてください 確認画面が表示されたら「Yes」ボタンをクリックしてください 以上で、Twitter Developerに「コールバックURL」を登録が完了です Twitterアプリと連携する GASのスクリプトエディタに下記を入力してください //認証用インスタンスの生成 const twitter = TwitterWebService.getInstance( 'xxxxxxxxxx',//API Key 'xxxxxxxxxx'//API secret key ); //アプリを連携認証する function authorize() { twitter.authorize(); } //認証後のコールバック function authCallback(request) { return twitter.authCallback(request); } APIキーとトークンはTwitter Developmentで取得したものを入力してください 関数「authorize」を選択して「実行」ボタンをクリックしてください 「許可を確認」をクリックしてください ご自分のグーグルアカウントを選択してください 「このアプリは確認されていません」と表示されます「詳細」ボタンをクリックしてください 「作成したプロジェクト名(安全ではないページ)に移動」をクリックしてください 「許可」ボタンをクリックしてください 成功すれば、画面には何も表示されません何かエラーが表示された場合、そのエラーを解消しないと次に進めないため解消しましょう画面に何も表示されなければ「表示」>「ログ」をクリックしてください ログに表示されているURL「https://~」をコピーして別タブに張り付けて開いてください アカウントへのアクセス許可が求められますので「連携アプリを認証」ボタンをクリックしてください 画面に「Success」と表示されれば連携完了です 以上で、Twitterアプリと連携が完了です GASからツイートする さて、いよいよGASからツイッターへの投稿をします下記コードをスクリプトエディタに記述してください // Twitterへの投稿 function tweet(){ const service = twitter.getService(); const response = service.fetch("https://api.twitter.com/1.1/statuses/update.json", { method: "post", payload: { status: "これはGASからの投稿です" } }); } 関数「tweet」を選択して「実行」ボタンをクリックしてください ツイッターに投稿されていれば成功です 以上で、GASからツイートが完了です まとめ ツイッターは非常に便利なSNSです。また、GASはJavaScriptをベースとしたスクリプト言語なのでとても扱いやすいです。これらを使用して、既定の時刻にツイートしたり、表を作成してすべてを逐次ツイートしてみたりと、できることはたくさんあります。ツイッターでのデベロッパーの登録やグーグルとの連携が結構大変ですが、一度登録&連携が出来てしまえば、あとはGASから自由自在です。この記事を参考に、是非自動投稿を導入してみてください。