SNS ボットでお手軽ブランディング
- ryotaharuki0
- 2月17日
- 読了時間: 9分
イントロダクション
LINE、Instagram、X(旧Twitter)、YouTubeなどのSNSの視聴時間は年々増加傾向にあります。テレビやラジオなどの従来のメディアの影響力が低下している現代において、マーケティングやブランディングにSNSを活用することは、多くのユーザーに情報を届けるうえで必須の戦略といえます。
SNSの中でも、Xはリアルタイムな情報拡散を行うプラットフォームとして個人や企業が活用しており、ポストされた内容からスキルや志向、企業風土を把握できるので、ブランディング活動にも利用している方が多い傾向にあるように見受けられます。
本記事は、Xが公開しているAPI(Application Programming Interface)を用いてボットアプリケーション開発を始める際の概要を紹介し、ブランディング活動に役立ててもらうことを目的とします。なお、今回は具体的な開発環境の構築方法やソースコードの実装例については割愛し、別の機会に紹介します。
なぜ、X APIなのか?
LINEやInstagram、Facebookなどその他のSNSにもAPIが存在します。今回、X APIを採用したのは、以下に挙げた通りプラットフォームの特性や導入障壁の低さなどの理由がありました。
友達、フォロワーの枠にとらわれず、不特定多数ユーザーに対してメッセージを届けたい。
API利用時に審査がなく、気軽に試せる。その他のAPIと比べて、開発環境の初期構築の手間が少ない。
X API利用開始時に必要なもの
無料プランでお試しでX APIを利用したい場合、最低限下記の用意が必要です。
X アカウント、および、開発者アカウントの作成
API開発環境、開発したアプリケーションを公開するサーバー
なお、一般的なWebアプリケーションの開発手法やX APIで利用するOAuth認証についての基礎知識は、もちろん必要ですが、昨今はChatGPTなどのLLMに問い合わせればとりあえず動くものは作れるので必須ではありません。
X アカウントの作成については、公式サイトのヘルプをもとに進めましょう。
X 開発者アカウントの作成については、公式サイトのドキュメントが参考になりますが、日本語ドキュメントは記載が十分ではないため、その他のブログ等で紹介している手順を利用することをお勧めします。APIの使用目的を英語で入力する箇所が面倒ですが、LLMに適当に文章を作ってもらえばよいでしょう。本記事では詳細は割愛します。
APIの開発環境についてですが、GitHubのAIエージェントであるCopilotも無料で利用でき、豊富なプラグインで効率的に開発できるVisual Studio Codeがお勧めです。また、開発言語はX API用ライブラリが存在し、かつ、紹介記事も多いpythonが良いでしょう。なお、Windowsでのpython開発環境の構築方法については、Microsoftの初心者向けスタートアップガイドが参考になります。
X のAPIの種類について
X のAPIには、以下の2種類が存在します。なお、本記事では前者の「X API」を紹介します。
X API
ツイートの投稿やタイムラインの検索など、一般的なデータ操作を提供
2023年7月以降、有料プラン(※)が導入され、利用量に応じた課金が発生
X Ads API
広告キャンペーンの作成、管理、分析に特化しており、別途利用申請・審査が必要
広告出稿に関連する料金体系で、APIの利用自体に別途料金はかからない場合が多い
※2022年までは、X APIの使用料は無料でしたが、Twitter社がイーロン・マスク氏により買収されて以降は、悪質ボットなどによる不正利用防止と収益改善を目的に有料化され、無料プランで実現可能な機能が大幅に制限されました。
X APIの料金プランについて
2025年2月時点で、X APIの料金プランは下記4種類の内容で公表されています。
最新情報は、公式ドキュメントを確認してください。
プラン | Free | Basic | Pro | Enterprise |
Price | Free | $100/month | $5000/month | 要問合せ |
Access to X API v2 | ✔️ (Only Post creation) | ✔️ | ✔️ | ✔️ |
Access to standard v1.1 | ✔️(Limited) | ✔️(Limited) | ✔️(Limited) | ✔️ |
Project limits | 1 Project | 1 Project | 1 Project | - |
App limits | 1 App per Project | 2 Apps per Project | 3 Apps per Project | - |
Post caps - Post | 1,500 | 3,000 | 300,000 | - |
Post caps - Pull | ❌ | 10,000 | 1,000,000 | - |
Filtered stream API | ❌ | ❌ | ✔️ | ✔️ |
Access to full-archive search | ❌ | ❌ | ✔️ | ✔️ |
Access to Ads API | ✔️ | ✔️ | ✔️ | ✔️ |
主な機能 | ・ツイートの投稿、削除 ・自分自身のアカウント情報取得 ・いいねの管理 | ・ツイートの取得 ・タイムライン上のツイート検索(直近7日分) ・DMの送信 | ・リアルタイムで流れるツイートデータをフィルタリングして取得 ・過去全期間のツイートデータ検索 | ・バックフィル ・他ユーザーのリプライやエンゲージメント(いいね、リツイートなど)に関する詳細データを取得 |
残念なことに、Freeプランでは、Post(ツイート投稿)するくらいしか機能が使えなくなりましたが、SNSボットで定期的にツイートするくらいであれば、十分機能すると思います。
他者のツイート内容を収集したり、マーケティング利用をしたい場合は、Basicプラン以上を契約しましょう。
なお、各料金プランごとの機能(利用できるAPIエンドポイント)の最新情報については、公式サイトを参考にしてください。
OAuth認証について
X APIに限らず、一般的にAPIのエンドポイントを呼び出す際、呼び出し側のアプリケーションの認証を行った後、利用できる機能の認可を行います。認証や認可で利用される技術にOAuth(Open Authorization)があります。X APIでもOAuthを利用しています。
OAuthは、Web上に存在するリソースの所有者のアクセス権限を、他のアプリケーションに委譲するためのプロトコルです。
X APIで例えると、リソースとはXにツイートするためのAPIを指します。リソースの所有者はアカウントのオーナーです。他のアプリケーションとは、所有者のアカウントを利用してXにツイートを投稿したり、タイムラインの情報を検索したりするSNSボットやTwitterDecのようなアプリケーションを指します。
OAuthを利用するメリットとしては、XのアカウントのユーザーIDやパスワードなどのクレデンシャル情報をアプリケーションに渡すことなく、代わりに認可サーバーが発行するトークンを利用して、ツイート投稿やタイムライン検索をアプリケーションに実行してもらうことができる点です。これにより、仮にアプリケーションサーバーが悪意の第三者に攻撃された場合でも、クレデンシャル情報の漏洩が防げます。

OAuhtで、認可サーバーがアプリケーション(クライアント)に対してトークンを発行するまでの代表的なフローについては、以下の通りです。
なお、X APIでは「認可コードによる権限付与」と「クライアントクレデンシャルによる権限付与」が用いられています。
「認可コードによる権限付与」:詳細は後述します。
「クライアントクレデンシャルによる権限付与」:詳細は後述します。
「インプリシットによる権限付与」:非推奨の方式です。SPA(Single Page Application)等で、ブラウザ上にリソース所有者のクレデンシャル情報を保持するため、情報漏洩のリスクがあります。
「リソース所有者クレデンシャルによる権限付与」:非推奨の方式です。アプリケーションサーバー上にリソース所有者のクレデンシャル情報を保持するため、情報漏洩のリスクがあります。
認可コードによる権限付与
「認可コードによる権限付与」では、以下の登場人物間で権限付与のやり取りが行われます。
リソース所有者
アカウントオーナー。認可サーバーが表示する認可画面の内容をもとに、クライアントに保護対象リソースを操作する権限を委譲する。
クライアント
リソース所有者の代わりにAPIを実行するアプリケーション。認可サーバーに対して認可コードとトークンを順に配布してもらい、トークンをもとにAPIを実行する。
認可サーバー
クライアントに認可コードを発行する際、リソースオーナーに認可確認を行い、認可された後にクライアントのcallbackエンドポイントに認可コードを配布する。また、クライアントから認可コードをもとにトークン依頼を受けた際、認可コードの正当性を確認し、トークンを配布する。
保護対象リソース
X API。クライアントのリクエストに付与されたトークンが正当なものであれば、APIの実行を行う。

X の開発者アカウントを登録する際、クライアントアプリケーションの登録も同時に行いますが、App infoの登録内容に「Callback URI」を入力する必要があります。この入力欄には、認可サーバーから認可コードを受け取るためのcallbackエンドポイントのURLを設定する必要があります。
アプリケーションをまだ作成していない場合、当然このエンドポイントも存在しないため、アカウント登録時には適当なURLを設定しておくとよいでしょう。
なお、その他のSNS(Threads等)の中には、アカウント登録時にCallback URIにリクエストを送り、実際に存在するURL以外は登録させないものも存在します。

上記の通り、フローの中で、リソース所有者がブラウザ画面上で認可操作を行う必要があるため、TwitterDeckのようにブラウザ画面上で複数のタイムラインを管理するようなアプリケーションには向いていますが、定刻にツイートを自動投稿するSNSボット等には不向きなフローと言えます。
クライアントクレデンシャルによる権限付与
「クライアントクレデンシャルによる権限付与」では、以下の登場人物間で権限付与のやり取りが行われます。
クライアント
クライアントIDとクライアントシークレットをもとに認可サーバーにトークンを配布してもらい、そのトークンを利用してAPIを実行する。
認可サーバー
クライアントから送られたクライアントIDとクライアントシークレットをもとにトークン依頼を受けた際、クライアントIDとクライアントシークレットの正当性を確認し、トークンを配布する。
保護対象リソース
クライアントのリクエストに付与されたトークンが正当なものであれば、APIの実行を行う。

人の操作を介する必要がないため、自動でツイート投稿するSNSボットや、API間で通信を行うマイクロサービスのアプリケーションなどに向いているフローと言えます。
OAuth認証についての理解を深めたい方は、以下の書籍を購読することをお勧めします。ハンズオン形式で認可サーバー、クライアント、保護対象リソースを構築しながら、OAuthでどのようなやり取りが行われているのかを体系的に学べます。
SNSボットの本格運用に向けて
お試しでX APIが実行できるまで確認した後は、いよいよ本格運用にむけての準備を行いましょう。
料金プランについては、前述の通り、定期的にツイート投稿するだけのSNSボットであれば、無料プランでも実現可能です。もしも他者にDMを送りたいとか、他者のツイートをもとにマーケティングを行いたいなどの要望が出てきたら、その時にプラン変更を検討したらよいです。
アプリケーションを実行するサーバーについても、一日に数回程度投稿するSNSボットであれば、クラウドサービス上にサーバーを作成する必要もなく、社内で余っているノートPCなどを常時起動させて、その上で定期実行させるだけでも十分です。
SNSボットに投稿させる原稿については、会社や商品を紹介したドキュメントをLLMに読み込ませて、ツイート内容を考えてもらうのも良いでしょう。他者に何をアピールするかを検討することが、ブランディング活動の肝となるので、コンテンツが一番重要になってくると思います。
SNSボットの具体的な実装方法は、また次の機会に紹介します。
Comentários