6年ほど前からTwitterのAPIを使ってTwitterのbotを作っていました。
今回、そのうち1つのbotがポリシーや規約に反しているとかで投稿不可能になってしまいました。
この表示、API2の無料モードにダウングレードすれば表示されなくなりますが、使えない状態は変わりません。
いろいろ試しましたが、プロジェクトを変えずに何とかするのは実に面倒なようです。
そこで、一度プロジェクトを消して作り直すことにしました。(規約に違反しないように)
新しくプロジェクトを作って、botの投稿に必要なキーを取得しないといけません。
プロジェクト名とアプリケーション名の入力が必要です。
このアプリケーション名、他の方が使っていると使えないようで、被ると「Your changes couldn't be saved. It's a pain, but if you can, try updating again.」とエラーが出ます。
めちゃ不親切。
とりあえずこのエラーが出たら誰も使って無さそうな名前に変えましょう。
アプリの設定が終わると、早速キーやらトークンがコピー出来る状態になりますが、このままコピーしても使えませんので、ここは無視して設定画面に移ります。
先にセットアップに移ります。
ここで、パーミッション設定のデフォルトが「Read」、下はデフォルトチェックなしになっているので、Read and write、或いはRead and write and Direct messageにチェックを入れましょう。下は、今回botを作るのでbotにチェックを入れました。
下項目のURLは必須なので自分の所有しているサーバURLを入力します。
コールバックは適当で良いようです。
設定が終わればクライアントIDやら発行されます。これはコピーして保管しておきましょう。
そのあと、先程は飛ばしたキーやトークンたちを発行します。
パーミッション設定を反映させたあとに発行しないと使えないそうです。
あとは、tweepyを利用すれば簡単に投稿することが出来ます。
pip install tweepy
でインストール出来ます。
client = tweepy.Client(bearer_token= [bearerトークンを入れる],
consumer_key= [APIキーを入れる] ,
consumer_secret= [API Secret を入れる] ,
access_token= [ACCESSトークンを入れる] ,
access_token_secret= [ACCESS Secretを入れる] )
client.create_tweet(text='投稿テスト')
これでAPI2を使って投稿完了となります。
ちなみに、API2では現時点で画像投稿は未だ出来ないそうです。