見出し画像

Twitter API有料化に伴うBotbirdでの自動投稿停止からの復旧方法につきまして

経緯

なーんか政治用語botが4月4日の昼から止まってたようでなんでかなと思ったら、こういう次第らしい。

で、政治用語botだけでなくどうやらbotbirdとtwittbot利用してたbotは軒並みこの絡みで停止してるようで、ざーっと調べた結果、とりあえずは「運営の対応待ち」とのことなので待とうと思ったが・・・。

こういうのを見つける。
最初見た時は「Twitter独自アプリってなんやねん」と思っていたが、なんのことはない。「Twitter側で各自API利用権取得すれば一応動くぞ」というだけの話である。
なので、Botbird運営者側の案内に従って取得してみる・・・と普通に復旧しましたやったね。

ただ不親切なことに、Botbird運営の案内ページは情報が古いのか、スマホ用サイトの画像だからなのか、その表記・例示画像では、どうやれば実際にAPI利用権を得られるのかがわかりにくい。基本英語ページでやることになるんで、多少は英語力もいる。

なので、ここで補完する。
なお、ここに書いてある解決策はBotbird運営も言うように「一時凌ぎ」的なものでしかないので、長期的には安心できない。

API利用権の取得方法

まず前提として、botbirdのアカウントは既に持っているものとして話を進める。

手順① Botアカウントでログインした上で、Twitter開発者プラットフォームを開く

Twitterからだとリンクが探しにくいため↓から飛ぶといい。

一応これは日本語サイトだが、残念なことにこれ以降は全て英語サイトになる。

開発者プラットフォームトップページ


手順② 右上の「開発者ポータル」をクリックする

自分のTwitterアイコンの左のやつね。
するとこういう画面が出る。

電話番号認証をやってないアカウントの場合、このように"Missing Phone Number"という警告が出て、これより先に進めない。”Verify Phone”をクリックして電話番号認証をすること。
(電話番号認証完了後遷移するのがこのページじゃなくてTwitterの自分のアカウントページになるクソ仕様だが我慢しろ。あと、電話番号認証の時には、デフォルトで「Twitterがお前の電話番号使うぞ」にチェックが入っている、気になるなら外しておけ)

で、電話番号認証が終わったらまた①に戻り、この画面を開き直すわけだ。
そしてここから先に進むのだが、一つ注意だ。
"Subscribe"がこれ見よがしに押してくれ感を出しているが、君がクリックすべきはそっちじゃない。その下の"Sign up for Free Account"の方だ。

"Subscribe"はあくまで月100ドルのBasicプラン用のボタンだ。botの種類によっては必要になるが、その辺の自動ツイートbotなら不要。必要になれば後でプランを切り替えるか諦めろ。

手順③作文書いてチェックして"Submit"

こんな画面になる。そしてこれが中々面倒くさい。

"Describe all of your use cases of Twitter's data and API"の下のテキストボックスが曲者だ。この画像では既に書いてしまっているが、「私はTwitterのデータとAPIを何のために使うか」をテーマにした作文を250字以上で要求してくる。日本語でも良いのかわからんが俺はとりあえず英語にした(この記事書くために試験的にやってるだけでAPI使うつもりはないです、と書いてある)。
これを回避することはできない。そして後々面倒なことになるといけないので出来るだけ真面目に書くことを強く薦める。

書き上がったらその下の三つのチェックボックスにチェックを入れて"Submit"をクリックだ。各項目の内容はよくある「規約に理解して同意します」「規約違反した場合はアカウント停止も受け入れます」って奴だ。自分が変人だと思うなら下の"Developer Agreement"と"Twitter Development Policy"をクリックして熟読しろ。

さて、"Submit"をクリックしたらこんなページになる。これで半分終わり。

これが君の開発者ポータルだ!!

(手順④デフォルトの"Project"と"App"を削除する)

このように開発者ポータルを開設すると、デフォルトで"Project&Apps"が既に作られている。
この手順は多分不要なのだが、俺は個人的にこのデフォルトという奴が嫌いなのでまず全部削除した(この手順が不要と思うなら手順⑤もスキップすること)

デフォルトで出来てるやつ

やりかたはちょっとわかりにくい(スクショを撮り忘れている)。
まず左のバーの、削除したいプロジェクト(今回の場合はDefault Project-16・・・)をクリックすると↑の画面になる。

そこからまず"App"を削除する。
この画像で言えば"Apps"のところにある"lmnl1164・・・"の右にある歯車マークをクリックする。
すると別ページに飛ぶので、その真ん中ちょっと右あたりにある"Edit"を押す。
すると下の方に赤い"Delete"というボタンが出るので、それを押す。
そしたら「お前これ削除したいならこのAppの名前を書け」と念押ししてくるので、それを書いて"Delete"押せばOK。

次に"Project"を削除する。
↑の画像でいうところの上の方に"Overview"と"Settings"が並んでいる。"Settings"の方をクリックする。
あとは先ほどの"App"削除とほぼ同様。
(こっちを先にやろうとすると「先にApp削除しろよ」と怒られる)


(手順⑤ ProjectとAppの作成)

※手順④をスキップした場合はこちらもスキップすること

新しく、"Project"と"App"を作る。別に難しくはない。

まず、左のバーの"Overview"を押すとこうなる。

ここで真ん中ちょい上の"+Create Apps"をクリックする。こんな画面になる。

やることは、
①プロジェクトの名前を決める
②どういう使い方をするかを指定する
③プロジェクトの説明を書く
④App作成に移行
特に難しくはない。入力か選択して"Next"を押すだけだ。
②は"making bot"というのがあるのでそれを選ぶ。③は一見また作文に見えるが、最低字数は設定されてないので好きにするといい。

App作成に移行するとこういう画面になる。

名前決めて"Next"押すだけ。すると"API key"と"Secret API key"が出てくるが、ここでは無視する。

手順⑥別窓か別タブでbotbirdにログインして「ボットトップ」を開いておく

手順⑦で"API key"と"API secret key"を取得するので、そのままBotbirdに入力できるよう、先にBotbirdの設定ページを開いておく。
この作業は後でもいいのだが、後回しにする場合は"API key"と"API secret key"を別途メモする必要がある。

Botbird使ってる人なら特に難しくないので省略するが、一つだけ注意。
「ボットトップ」は「上級者向けモード」で開くこと。

これの「表示モード」ってところで切り替える。

そしてついでに、"API key"と"API secret key"の入力項目までスクロールしておくといい。ページ全体の真ん中よりちょっと下あたりにある「Twitter出力連携設定」ってとこな。

手順⑦"App"を設定して"API key"と"API secret key"を取得、Botbird側に入力する

手順⑥で作成した、または元からある"App"のページを開く。
左のバーの"Overview"を展開して二つ下がそれになるはず。
違った場合は各自探してくれ。

ここの真ん中ちょい下"User Authentication Settings"の"Edit"をクリックする。こんな画面になる(もう少し下に続くが)。

"required"とある項目は必須項目。"optional"は任意項目である。

この画面だと設定済みだが、デフォルトだと"App permissions"のところは"Read"が選択され、"Type of App"は選択なしになっているかと思う。
それをこの画像と同じように選択箇所を変える。
(上の方の選択肢は"Read and Write"でいいかもしれない)

そしてその下。

この"App info"は、デフォルトだと全部空白になっているはず。
これもこの画像と同じように入力する。
"Callback URI/Redirect URL"のところは空白のバーが一つだけだが、
その下の"Add another URI/URL"をクリックすれば増える。
入力が済んだら"Save"を押す。確認が出るので"Yes"

コピペ用↓。
Callback URLs
https://mtbrs.net/twcallback
https://shop.slmame.com/twcallback

Website URL
https://botbird.net/

そしたらこの画面に戻る(都合によりそふと版のページだが)。

今度はこの上の方の"Settings"と"Keys and tokens"の並びの"Keys and tokens"の方をクリックする。次の画面になる。

ここまで来りゃもう終盤である。
"Consumer Keys"の"API Key and Secret"の右"Regenerate"をクリックする。
また確認画面になるので"Yes, Regenerate"をクリック。

こういう画面になる。これがここまで探し求めた"API key"と"API secret key"だ(他人に見せてはいけない情報なので赤塗りにしているが)。
あとはこの二つを、手順⑥で開いたbotbirdの設定項目に入力し、「設定する」を押す。

コピペでいい。親切にTwitter側に"Copy"ボタンがあるので、それでコピーして貼り付ければよい。
次が最後の手順である。

手順⑧BotbirdとTwitterのアカウント連携を切って繋ぎ直す。

Botbird運営の説明によると、一度アカウント連携を切って繋ぎ直す作業が必要だそうな。というわけでそれをやる。
(なのだが、なぜか政治用語botではアカウント連携が最初から切れており、そふと版は繋がっていたので状況次第かも)

先ほど"API Key"を入力した場所の上に「公開・連携設定」というのがある。ここの自分のアカウント名の下に(Cancel)とあるのが見えるだろうか。これを押すと確認画面を通してから、アカウント連携が切れる。

その後元のページに戻るが、そうすると表示がこのように変わるので、

このデカデカとしたボタンを押す。あとは普通にTwitterと連携してくれる。

あとは一応Botbirdから手動ツイートできるか確認して、念のためにしばらく待って自動ツイートできてるか確認。できてれば復旧完了。

出来てなかったら?それは知らん。自分で解決してくれ。

あとがき

さて、今回の騒動、なんか調べているとちょっと誤解があるっぽい?
この記事タイトルも「Twitter API有料化に伴う」としているのだが、この「伴う」というのは通常想定されるような「TwitterAPIが有料化されたから既存サービスが締め出された」という話だけではなく、
「TwitterAPI有料化という仕様変更のためのプロセスとして既存サービスのAPI利用をリセットした」も含む。
今回のBotbirdの件はおそらく後者だろう。有料化それ自体というよりも、サービス形態の切り替えで「これからはアカウント管理者各自でAPI設定やってね」になったからこういうことが起こったと見る方が適切ではないか。

というのも、新APIの契約プランを見ると、「ただ読み、投稿する」だけのAPI利用は、新API以降も無料のままなのだ。投稿数制限はあるため、ウチの「政治用語bot」のように、ただ1時間2ツイートを垂れ流し続けるbotが例外的なだけかもしれないが。

また、このAPI利用プランと今回のわざわざAPI利用権限をこちらで取得する必要を見るに、API利用でTwitterと改めて契約が必要なのは、Twitter関連サービス提供者ではなく、各アカウントを管理する我々である。

多分だが、Twilogがこのように継続不可能となるのは、Twilogがコストを担えないからということではなく、「Twilogがこれまでと同じようにツイート取得するには、各利用者毎に月100ドルプランやら悪くすれば企業向けプラン契約することになるけど、そんなん無理やろ!」ということではないか。

まあ、俺はガチガチの文系なもんでAPIが一体何なのかすらよくわかんないから「そんな気がする」の域を超えねえ。

少なくとも俺だってbot如きに月100ドルなんか重すぎて払えんのは確かだ。

この記事が気に入ったらサポートをしてみませんか?