見出し画像

つかえる自動化/効率化の知識 - X API を使って外部から投稿する

Twitter が X になったのが 2023年7月24日ですから、そろそろ 1年が経過しようとしていますね。

API (Application Programming Interface) が有料化されたのも同年 3月 ですから、こちらもまた 1年超 が経過したところです。

いろいろと変化がありながらも X はビジネスの認知や告知、集客導線の入り口として異常なまでに活躍しています。

しかし、未だに知られていないのが、

X API には「Free プラン」があり、
"ツイートの自動投稿" や "ツイートの予約投稿" などはできる!

ということなのです。

そのため、
「毎日同じ時間に投稿する」ために、早起きしなければ・・・
なんてことはしなくても良いのです。

そこで今回は、X API についてお話したいと思います。



X API とは?

X API とは、外部プログラムから X のデータを取得したり、データを分析したり、ツイートしたりすることができるプログラム用のインタフェースです。

昨年変更があってからいろいろと情報が錯綜していましたが、何も出来なくなったわけではなく、不正アクセスや悪い輩が悪いことをしないように以前にくらべて正常なプラン構成になっただけなのです。

プランはいくつかの種類があって自身の使い方によって選ぶことができます。

引用:X 開発者ポータルより
(https://developer.x.com/en/docs/twitter-api/getting-started/about-twitter-api)

⬇️ X 開発者ポータル はこちら ⬇️

フリープラン

ここでは「フリープラン」のみに絞ってみていきましょう。

"フリープラン" ですので、もちろん「無料」です。

しかし、かなり制限されていて、ほとんど何もできません💦

しかーーし、ここが重要。

「投稿」はできます。

・1,500ツイート / 月
・50ツイート / 日

1日あたり、1月あたりの制限はありますが、
個人事業主や小規模事業者が使うにあたり問題になる制限ではありません💦

1日50ツイート以上する人って・・・?

ということで、制限といっても、制限にならないと思います。

※ツイートの削除もカウントされるので、注意してください。

実現方法

X API を使用して外部プログラムから X(Twitter) にアクセスするには、以下の手順で行います。

  1. 投稿対象の X のアカウント を作成する。

  2. X 開発者ポータルのアカウントを作成する。
    ※1で作成したアカウントと同一であること。

  3. 外部プログラムを作成する。

  4. X 開発者ポータルで Client ID / Client Secret を発行する。

  5. 外部プログラムと X を接続する。
    ※OAuth2 で認証する。

  6. ツイートの投稿や削除をする。

  7. 投稿時間を設定する。

1.投稿対象の X アカウントの作成

すでに作成していれば問題ありませんが、新規で作成する場合は以下をご参照ください。

2.X 開発者ポータルアカウントの作成

X API を使用した開発を行う場合は、必ず必要なアカウントです。

以下からログインします。

ログインは X (Twitter) のアカウントでログインします。

すると、以下の画面が出てきます。

一番下にこっそりと「フリープラン」の入り口がありますので、間違えないように💦

「Sign up for Free Account」をクリックすると、以下の画面が出ますので、すべての項目に入力とチェックをしてください。

一番上のテキスト入力欄は、どういう目的で X API を使用するのか、ユースケースを記載します。

例えば・・・

私は、アプリ開発者として X API を使用します。
より多くの方により良い形で伝えるために指定時間に指定内容の投稿をするための定期投稿システムを開発します。
投稿の頻度や内容については規約や制限を守り適切に行います。

といった感じでしょうか。

これが思ったよりもやっかいで 250文字以上 入力しないとクリアになりません💦

また、日本語がダメではありませんが、文字数のカウント的にも英語の方が都合がよいので、できるだけ英語で入力しましょう。

もちろん、日本語で考えた内容を Google翻訳 などを使用して英語化して入力するだけで OK です。

正常に受け付けられると、以下のダッシュボードが表示されます。

3.外部プログラムの作成

外部プログラムはどのようなプラットフォームでも問題ありませんが、今回は GAS (Googleスプレッドシート) を使用しますので、GAS でプログラムを作成します。

⬇️ GAS についての詳細はこちらをご参照ください ⬇️

今回はプログラムの内容までは踏み込みませんが、あとで必要となる Googleスプレッドシートの ID の取得方法についてお話しておきます。

共有ボタンにある「リンクをコピー」を押すと、Googleスプレッドシートのアドレスをコピーすることができます。

例:https://docs.google.com/spreadsheets/d/[スプレッドシートID]/edit

この [スプレッドシートID] と書かれている箇所が ID です。

また、App Script の設定画面でも確認が可能です。

スクリプトID と書かれている箇所が ID です。

次の項目で使いますので、覚えておいてください。

4.Client ID / Client Secret を発行

ダッシュボードの左にメニューがあります。
その中から、Projects & Apps > Default projectxxxx > xxxxx を選択してください。
※xxxx は異なる英数字が入ります。

上記の画面になりますので、一番下にある「Set up」をクリックしてください。

セッティング画面になりますので、以下のように設定します。

・App permissions
 ・Read and write
・Type of App
 ・Web App, Automated App or Bot
・Callback URI / Redirect URL
 ・https://script.google.com/macros/d/ [スプID] /usercallback
・Website URL
 ・https://x.com

Callback URI / Redirect URL 以外は、そのまま選択 or 入力すれば問題ありません。

Callback URI / Redirect URL は、3 で覚えておいた "スプレッドシートID" を使用して生成したアドレスを入力します。

⬇️ 生成アドレス ⬇️
https://script.google.com/macros/d/ + スプレッドシートID + /usercallback

と "スプレッドシートID" の前後に指定の文字列を追加してアドレスを作成してください。

これですべての設定が完了しましたので、保存してください。

最終確認画面がでますので、Yes を選択してください。

5.外部プログラムと X を接続

外部プログラムから OAuth2 を使用して生成した接続用 URL にアクセスすると、認証画面になりますので「アプリにアクセスを許可」ボタンを押すと認証完了です。

認証が完了すると、ツイートができるようになります。

また「設定 > セキュリティとアカウントアクセス > 連携しているアプリ」で連携しているアプリを確認することが可能です。

6.ツイートの投稿や削除

5 で、すでに認証済ですので、ツイートの投稿や削除が可能です。

1日あたり、1月あたりの制限内で投稿してください。

正常に投稿できれば、以下のような jsonデータを受信します。

{
 data={
  text=これはテストツイートです。,
  id=18070500786637xxxxx,
  edit_history_tweet_ids=[
   18070500786637xxxxx
  ]
 }
}

投稿時に受信した "id" を使用すると、削除することができます。

7.投稿時間の設定

スプレッドシートには "トリガー" と呼ばれる、タイマーを設定する機能があります。

そのタイマーにはいくつかありますが、指定時間に処理を実行するトリガーがあります。

この "指定時間に処理を実行するトリガー" によって、
例えば・・・

「明日の午前 7時にツイートする」

という処理が可能になります。

上記の例の場合は、以下のように設定します。

これで次の 7時~8時 の間に textTweet() 関数が実行されます。

実際には、この処理によってツイートされることになります。


まとめ

今回は、X API を使用したスプレッドシートからの投稿方法についてお話しました。

まさしく、タイトルの「X へ外部から投稿」ですね。

単純に投稿と削除ができるだけとはいえ、毎日定期的に同じぐらいの時間に投稿を続けている人からすると、すごく便利じゃないですか✨

これが出来るだけで 1日のストレスが無くなります😁

さて、知識として知れたとはいえ、知っただけでは意味ないですよね💦

そこは、Mr.Green ですからね~。
使えるプログラムを準備しますよ!

次回は、実際に動作するプログラムについてお話した上で、提供したいと思います。

お楽しみに~✨

もしわからないことがありましたら、お気軽に LINE公式アカウント でご質問くださいね。

⬇️LINE公式アカウントに登録してご連絡ください⬇️


登録してね~

もし「サポートしたい!」という方がいらっしゃいましたら、ぜひぜひサポートをお願いいたします! 開発費や外注費などクリエイター活動の一部として使用させて頂きます✨