twitterへの自動投稿のやり方
Twitter(ツイッター)のツイートを、予約投稿して、効率的に運用したいと感じたことはありませんか?専用アプリを使用するのが一番ですがここではGASを利用した自動投稿方法を紹介します。
アクセスキーの取得
Twitterログイン状態で、Developer Platformを開く。
画面の必要な情報を入力してください。
Developer & Agreement Policyを確認し、「submit」してください。
メールで通知が届きます。
App nameを入力してください。
キー情報が表示されますので、記録してください。
GAS(Google Apps Script)でTwitterへの定期自動投稿
Google Apps Script(GAS)とは、Googleが開発・提供しているプログラミング言語です。JavaScriptというWebブラウザ上で動作するプログラミング言語をベースに作成されています。
Google Apps Scriptの始め方
Google ドライブにログイン後してください。
「新規」→「その他」→「Google Apps Script」をクリックしてください。
認証をやるためのライブラリを追加
公式でGASでOAuth1.0a認証をやるためのライブラリがあるのでそれを使います。
https://github.com/gsuitedevs/apps-script-oauth1
twitterのキーを設定するためにクラシックエディタにします。
新しいスクリプトエディタではスクリプトプロパティを設定する方法がないためです。なぜそうなったのか??
プロダクトID
プロダクトIDをtwitterで設定するので記録しておく。
Twitterサイトのアクセスキーを入力する。
コールバックURLを設定する。
https://script.google.com/macros/d/スクリプトID/usercallback
GASで自動投稿のスクリプトをコーディングする。
// OAuth認証をよしなにしてくれるサービスクラスのインスタンスを生成・取得する
function getTwitterService() {
return OAuth1.createService("Twitter")
.setAuthorizationUrl("https://api.twitter.com/oauth/authenticate")
.setConsumerKey(PropertiesService.getScriptProperties().getProperty("CONSUMER_API_KEY"))
.setConsumerSecret(PropertiesService.getScriptProperties().getProperty("CONSUMER_API_SECRET_KEY"))
.setAccessToken(PropertiesService.getScriptProperties().getProperty("ACCESS_TOKEN"),
PropertiesService.getScriptProperties().getProperty("ACCESS_TOKEN_SECRET"))
}
function tweet(){
let twitterService = getTwitterService()
if (twitterService.hasAccess()){
let url = "https://api.twitter.com/1.1/statuses/update.json"
let text = "Hello World";
let payload = {status : text}
let reponse = twitterService.fetch(url, {
method : "post",
payload : payload})
console.log(reponse.getResponseCode())
} else {
console.log(service.getLastError())
}
}
"Exception: Request failed for https://api.twitter.com returned code 403. "が発生!
Twitterの仕様変更により、 Twitter API v2を使用する場合、申請が必要です。
こちらの記事を参考にしてください。