私はTwitterを含むSNSに時間を割きたくないため、運営している各サイトのTwitterアカウントはBotbird(ボットバード)を利用し、運用はBotによる自動ツイートを基本としている。
特に最近のTwitterには関心が薄かったが、Twitter API v2(以下、「API」と略)が有料化されてしまうと、利用しているTwitter関連サービスに支障が出るようになった。
Botbirdもそのひとつで、ウカツにも自動ツイートが停止しているのに気付かなかったが、解決しようとすると運用アカウントのAPIを設定し、Botbirdを再設定しなければならない。
APIの設定は英語の上に分かりにくく、しかも頻繁に仕様変更されているようで、Botbirdの説明記事の画面(2023/04/10時点)ですら実際のAPI設定画面と違っている、という有様だ。
そこで本稿では、「今までBotbirdを利用していたのに使えなくなった」「APIの設定方法が分からない」人向けに書くが、Twitterアカウントに自動ツイートBotを新規に導入する場合でも、大いに参考になるハズだ。
なお、Botbird側も開発・テスト中であり、APIの仕様変更による画面その他の変更が短期間に行われるだろうことが予想されるので、その点は先にお断りしておく。
前提条件
本稿の説明には、次の前提条件がある。
- Twitterアカウントが電話による認証済みであること
- Twitter Developerアカウントを持っていないこと
- Botbirdアカウント(無料プランまたは有料プラン)を取得済みであること
APIの利用はTwitterアカウント単位であり、そのTwitterアカウントが電話による認証済みでないと、APIの利用は出来ない。
それとBotbirdに限らず、外部Botサービスを利用して自動ツイートをしている場合は、TwitterのDeveloperアカウントは持っていないと思うが、Developerアカウントを取得済みの場合では画面とその設定内容が違うので、本稿ではDeveloperアカウントを持っていない前提とする。
Developerアカウントを取得している人は、デベロッパ登録済編を参照して欲しい。
また、本稿はBotbirdの使い方を説明する記事ではないため、Botbirdによる自動ツイートの方法等に関しては、別途ご自身で調べていただきたい。
その上で、本稿ではAPIを無料で利用する方法を説明する。Botbirdを無料プランで使っていれば、APIを含め無料で外部Botによる自動ツイートが可能だ。
ちなみにAPIの無料プランでは、次の制限がある。
- Twitter1アカウントにつき1アプリ
- 1アプリにつき最大1,500ツイート/月
例えば、Botbirdの有料プランで1時間に2~3ツイートさせている場合や、Twitter1アカウントで複数のBotbirdアカウントを利用したい場合、Botbirdでの返信(@返信やタイムライン返信等)がしたい場合は、Basic(月額100米ドル)以上のプランを申し込む必要がある。
ただ、Botbirdの無料プランは最大で1時間1ツイートなので、1日24ツイート✕月31日=最大744ツイートであるから、自動ツイートをするだけの用途であれば、APIの無料プランでまったく問題ない。
Twitter API v2の登録と開発者契約の申請
まずはAPIを利用したいTwitterアカウントにログインしておく。
図のTwitter Developer Platformサイトにアクセスする(図をクリックすると別窓で開きます)。
画面を下にスクロールすると、図の画面が出てくる。
無料プランを利用するため、図赤枠「Get started」をクリックする。
すると図の画面に遷移する。
画面を下にスクロールし、図赤枠「Sigh up for Free Account」リンクをクリックする。
厄介なのが、遷移した図の「開発者契約とポリシー」画面での申請だ。
APIを利用する=開発者契約をしろ、ということなんだと思うが、そのためにはTwitterのデータとAPIの使用例をすべて説明しやがれ、ということだ。
しかも、英文で250字以上記入しなければ申請が出来ないようになっている。
私の場合は単に自動ツイートボットを利用するだけなので、APIの使用目的は次の3点に要約できる。
- 私はTwitter APIを利用して自動ツイートボットを作成し、利用したい
- 自動ツイートボットの1日のツイート数は最大24件で、月間最大約744件を予定している
- 自動ツイートボットはリプライに反応しないため、最大ツイート数が増える予定はない
上記をテキトー英訳をすると次のようになる。
1: I would like to create and use an automated tweetbot using the Twitter API.
2: The automated tweetbot will have a maximum of 24 tweets per day and a maximum of approximately 744 tweets per month.
3: The maximum number of tweets is not planned to be increased because the automatic tweetbot is not to respond to replies.
Botbirdを使って自動ツイートするのが目的の場合は、上記英文を図赤①にコピー&ペーストすれば良いだろう。
図赤②~④は、APIを利用するにあたっての開発者契約とTwitter開発者ポリシーに同意するかが問われているので、問答無用にチェックするしかない。
しかし、内容もワカランのに同意するのもイヤなのは人情。テキトー訳は次の通り。
② Twitter APIを介して受け取ったものを再販してはならないことを理解しています
③ 開発者契約または組み込まれた開発者規約に違反した場合、開発者アカウントが終了される可能性があることを理解しています
④ 利用規約に同意します
図赤枠⑤「Submit」をクリックすると、API利用登録と開発者契約の申請が完了する。
APIを利用するプロジェクトとアプリの設定
前章でAPI利用登録と開発者契約の申請が完了すると、APIを利用するデフォルトのプロジェクトとアプリが自動生成される。
具体的には図のような画面に遷移する。
無料プランの場合は1プロジェクト1アプリに限定されるが、Basic以上の有料プランの場合は複数プロジェクトが作成出来るし、1プロジェクト内で複数アプリを作成することが可能のようだ。
ともあれ、Botbirdを使って自動ツイートが出来るよう、プロジェクトとアプリを設定する必要がある。
まず、プロジェクトを設定する。
図赤①「Settings」をクリックし、プロジェクト内容を設定する。
② プロジェクト名を入力する(画面ではTwitter内ユニークであるアカウント名「leiji_museum」と入力)
③ 「Making a bot」をコンボボックスから選択する
④ 入力は任意なので未入力でも良い(画面では「私設松本零士博物館Twitter用プロジェクト」と入力)
⑤ 「Save」をクリックして保存する
次に、アプリを設定していく。
図赤①のアプリ名をクリックし、図赤枠②「Edit」をクリックする。
この画面では図赤①のアプリ名ぐらいしか設定しないが、このアプリ名はTwitter内ユニークでなければダメ(?)なようなので、プロジェクト名+「_bot」としておくと良いだろう(画面では「leiji_museum_bot」と入力)。
なお、Botbird経由でのツイートには、このアプリ名が記載される(後述)。
最後に図赤枠②をクリックして保存する。
最後に、図赤枠「Set up」をクリックしてアプリのユーザ認証を設定する。
図の画面に遷移するので、アプリのパーミッション(許諾)とアプリのタイプを設定する。
自動ツイートBotのため、少なくとも「Read and write」以上のパーミッションを設定する必要がある。図赤①「Read and write and Direct message」を設定しても問題がないので、図ではそれを選択している。
アプリのタイプは図赤②「Web App, Automated App or Bot」を選択しておく。
画面を下にスクロールし、アプリ情報を入力する。
必須入力なのは図赤①と②なので、次のように入力する。
① 「https://mtbrs.net/twcallback」と入力する(BotbirdのコールバックURL)
② 運営しているウェブサイトのURLを入力する(画面では「https://museum.dajya-ranger.com/」と入力)
上記②に関しては、必ずしも独自ドメインで運営しているサイトに限らないが、自動ツイートに記載されるアプリ名のリンク先URLになるので、指定するURLには留意されたい。
最後に図赤枠③「Save」をクリックして保存する。
すると、図のダイアログ画面が表示されるので、図赤枠「Yes」をクリックする。
アプリの設定は以上だが、Botbirdを含む外部サービスからアプリを利用する設定を取得しなければ意味がない。
具体的には、図赤①のアプリ(図では「leiji_museum_bot」)をクリックし、図赤②「Keys and tokens」をクリックして取得する。
APIを利用するアプリは、そのAPI KeyとAPI Key Secretが最低限分からないことにはどうにもならないが、最初からデフォルトのプロジェクトとアプリが自動生成されているから、図赤枠③「Regenerate」をクリックして取得するしかない。
また、APIの無料プランの場合、BotbirdではAPI KeyとAPI Key Secretだけだとツイートに失敗するため(本稿執筆時点)、図赤枠④「Generate」をクリックしてAccess TokenとAccess Token Secretを取得しておく必要がある。
API Key and Secretを「Regenerate」して再生成する場合、図の画面が表示される。
まだAPIを使うアプリを設定・利用していないから図赤枠「Yes, regenerate」をクリックするが、一旦アプリを設定・運用してしまうと、そう簡単に「Regenerate」は出来ない。
図のようにAPI KeyとAPI Key Secretが再生成されて表示されるので、テキストファイルその他に転記し、厳重に保管しておこう。
なお、転記する場合は図赤下線「Copy」をクリックし、テキストファイルその他へペーストすると確実だ。
保存したら図赤枠「Yes, I saved them」をクリックする。
同様にAccess Token and Secretを「Generate」して生成し、テキストファイルその他に転記して厳重に保管しておこう。
Botbirdの設定とテスト
前章まででAPIを利用する準備が完了したので、BotbirdにログインしてAPIの設定をし、テストをしてみよう。
図赤枠①「ボットトップ(設定)」をクリックして画面を下へスクロールし、図赤枠②の各項目に転記した内容をコピー&ペーストして入力する。
入力後、図赤枠③「設定する」ボタンをクリックするとページがリロードされ、図赤枠④のように、Twitterアカウントに接続する。
テストとしては、図のBotbird管理画面トップから「今すぐつぶやく」を実行する。
具体的には、図赤①のように何かテキストを入力し(画面では「テスト」と入力)、図赤枠②「つぶやく」ボタンをクリックする。
図のようにBotbird経由でツイートが出力されれば、テスト成功だ。
図赤下線「leiji_museum_bot」のリンクは、BotbirdがAPIの「leiji_museum_bot」アプリに接続してツイートしていることを示し、そのリンク先はアプリの認証画面のアプリ情報で入力したウェブサイトのURLとなる。
なお、図赤下線部分のリンクは「GoodTwitter2」をブチ込まなければ表示されない(Twitter標準UIでは表示されない)ので注意。
興味がある人は次の記事を参照のこと。
もし、Botbird経由でツイートが出力されていない場合は、Botbirdのエラーログを参照してみよう。
図赤枠①「ボットトップ(設定)」をクリックして画面を下へスクロールし、図赤枠②のようなエラーログが出力されていたら、API側のアプリ設定か、Botbird側の設定にミスがあるハズだ。
本稿の設定手順と実際の画面を見比べてミスを探し、直すしかない。
テストが正常に完了したら、Botbirdで「停止」になっている設定を変更すれば、Botbirdによる自動ツイートが可能になるだろう。
おわりに
今年の2月上旬にAPIの有料化がアナウンスされ、その下旬には利用しているTwitter関連サービスで自分のTwitterアカウントと連携が出来ない、サービスが使えないといった不具合が続出したようだ。
3月30日にAPIの有料化の詳細が発表され、Twitter連携アプリが一斉に停止されることが告知されたようで、有料・無料を問わずTwitter連携サービスの運営者はサービスを継続するか停止するかを突き付けられた格好だ。
そして4月4日に突然Twitter連携アプリが一斉に停止し、Botbirdも停止してしまった。
APIの有料化とTwitter連携サービスへの影響と懸念、Twitterから離脱するようなことを言う人が多いらしいことは、それとなくは知っていたが、4月4日にBotbirdが停止していたのは知らなかった。
FacebookやInstagramでは、利用者がショップ機能を使って商品やサービスを販売したり、そのマーケティングを補助するような機能と土壌がすでにあるが、Twitterは利用者がマネタイズする方法が(少なくとも日本では)提供されていない。
ゆえに、サードパーティによるTwitter連携サービスが成立していたとも言えるが、それらを排除してまで利用者がTwitterに残る魅力を提供できるのか?は、大いに疑問だ。
FacebookやInstagramでも有料化の検討が進んでいるようだが、SNSは基本的にUGC(ユーザ生成コンテンツ)なのだから、運営者と利用者の双方にメリットがなければ自滅するだけだ。
ともあれ、私のような個人でも自動ツイートBotの停止は困るし、何とか再開させようと調査してこうして記事化しているが、法人の場合ならなおさら自社ビジネスにも関わってくるだけに、問題は深刻だろう。
ネットに有効な情報が少なく、しかも法人のTwitter担当者はどこに相談していいのかすら分からず、途方に暮れたのではないだろうか。
それらを含め、また、個人・法人を問わず、フリーランスSEの私に相談してくれれば、と思う。
私が運営している無料のオンラインサロンは次の通りなので、簡単に答えられる範囲なら無料で対応する。
相談内容によっては、私が実際に手を動かす等で実費が発生する場合もあるかも知れない。
その場合でも受発注と金額収納の仕組みはちゃんと用意しているので、困ったら気軽に相談して欲しい。
最初からプロに相談した方が、結局は安くつく。技術や自信がないなら、タダで済ませようとは思わないことだ。
関連記事
Warning: strpos() expects parameter 1 to be string, array given in /home/eware/dajya-ranger.com/public_html/wp-includes/compat.php on line 498
Warning: preg_match_all() expects parameter 2 to be string, array given in /home/eware/dajya-ranger.com/public_html/wp-includes/shortcodes.php on line 155
Array