GAS

【GAS】XのAPIでGASから投稿できるライブラリを作ってみた(画像投稿、動画投稿、ツリー投稿も対応)

最近、個人的に触っていたX APIでの投稿処理周りを一通りやりきったので、作成した処理をまとめてGASライブラリにしてみました。

完全に自分用に作ったものですが、簡単な使用イメージと導入方法をまとめたので興味のある方は使ってみてください。

何ができるの?

「SLOTH」はXのAPIを使用した投稿処理をサポートするGASライブラリです。
導入する事でシンプルな記述でXへの投稿処理を実装することができます。

使用イメージ

テキスト投稿

let tw_id = SLOTH.postText("投稿したいテキスト");

画像投稿

let tw_id = SLOTH.postImage("投稿したいテキスト","投稿したい画像のURL");

動画投稿

let tw_id = SLOTH.postVideo("投稿したいテキスト","投稿したい動画のURL");

ツリー投稿

引数の末尾に投稿元のポストidを加える事でツリー投稿に対応できます

let tw_id = SLOTH.postImage("投稿したいテキスト","投稿したい画像のURL");//元となる投稿
let tree_id = SLOTH.postText("投稿したいテキスト",tw_id);//ツリー投稿

導入方法

GASでライブラリの読み込み

下記スクリプトIDで検索してライブラリを読み

10-3mPLjKMCEfMJEPFroTPRYpBU6RDIlBPY0qDBIIF46w55emFpOYp4vf

GASでスクリプトプロパティに値を設定

XのDeveloper Portalで各種7つの値を取得し、下記プロパティ名でスクリプトプロパティに設定

  • CLIENT_ID
  • CLIENT_SECRET
  • API_KEY
  • API_KEY_SECRET
  • ACCESS_TOKEN
  • ACCESS_TOKEN_SECRET
  • BearerTOKEN

コールバックURLの設定

Developer Portalの「User authentication settings」でコールバックURLを設定

https://script.google.com/macros/d/{スクリプトID}/usercallback

アプリ認証用のURL生成とアクセス許可

GASに下記コードを追加し、setting()を実行するとログに認証用のURLが表示されます

const setting =()=>{const data = PropertiesService.getScriptProperties().getProperties();SLOTH.setting(data);SLOTH.main();}
const authCallback=(request)=>{return SLOTH.authCallback(request);}

ログに表示されたURLにアクセスするとアプリ認証画面に遷移します
「アプリにアクセスを許可」ボタンを押して画面に「Success!」という文字が表示されれば設定完了です

注意事項

  • 無料版の投稿上限は1500回/月(48回/日)まで
  • 動画の再生時間は0.5秒~140秒の間
  • 動画のフレームレートは60FPS以下
  • 動画のサイズは32x32~1280x1024の間
  • 動画のURLはmp4形式で指定
  • 複数画像を指定する際は画像URLを配列で渡す必要があります
  • 画像URLが5つ以上の場合は4枚毎にツリー投稿で処理されます
ABOUT ME
ytakeuchi
都内在住のフロントエンドエンジニア。2016年からフリーランスとして活動中。座右の銘は「昨日よりも楽に」。好きな言葉は「効率化」。こんな性格なのでプライベートではGoogle Apps Scriptばかり触っています。