Tweepyで突如投稿が出来なくなった…? TweepError: code: 32

Tweepyで投稿が 出来なくなった件… TweepError IT一般

皆さん、こんにちは!

私はこのブログと別でTwitterアカウントを運用しており、日々Twitter APIのお世話になっています。

先日そのTwitter APIのアプリケーションが制限を食らってしまい、非常にヤキモキしたので、そのことについて書いていきます。

朱莉
停止されたときは、本当に焦りました…

結論から言うと、2週間ほど待っても解決しなかったので、アプリケーションを再度作成し、アクセスキーを入手し対応しました。

ちなみに制限されたのは、API経由のツイートのみで、
アカウントは普通に生きてます。
ツイートもできますし、スペースにも参加できるので、
見た目は普通です。

普段の運用 Pythonで自動投稿

今回、「SUSPENDED」されたアプリケーションについて簡単に説明しておきます。

私はTwitter APIを使って、ツイートをしています。

自動で投稿されるのは、画像付きのツイートで、多い時でも一日100件未満という、まあ標準的なボットだと思います。

ちなみに、Twitter から情報を取得するような、読み取り機能は一切使っておらず、Pyhtonで、ツイートする文言を作成し、APIと接続し、投稿というステップを踏んでいます。

後はHerokuを用いて、ネットニュースを1日10件ほどツイートしています。

こちらはWebサイトのリンクがくっついているので、これがスパム判定された?可能性も考えられます。

Tweepyである日エラーが発生

おそらくこの記事を読んでいる方は、Twitter APIを使っていて、まさにこのエラーに遭遇している方だと思います。

ある日突然、タイトルのエラー(TweepError: [{‘code’: 32, ‘message’: ‘Could not authenticate you.’}])が発生しました。

調べてみると、Code 32は、権限に関する内容だとわかりました。

Developperを除いてみると、このように真っ赤な文字で「SUSPENDED」と表示されています…。

内容を読んでみると、「このアプリケーションは、Twitterのルールとポリシーに違反しています。結果としてアクセスを制限し、下記のメールアドレスに詳細を送りました。サポートが必要な場合は、サポートチケットを送ってください」と書かれています。

ちなみに、メールアドレスにメールは来ていません…。

毎日運用しているということもあり、さっそくサポートチケットに送ります…

サポートへの連絡方法

結論から言うと、サポートへの連絡は1回目では返信なし。

2回目の送信で、ようやく自動応答のようなメールが返ってきました。

一応連絡方法について書いておくと、下記のような画面に遷移し、必要情報を入力します。

UIが日本語なので、日本語で状況を記述して送りましたが、ダメでしたね…

原因くらい教えてくれたらいいのに…

最初は1週間待って、返信がこなかったので、再度上の画像のフォームから、チケットを送りました。

すると、1分もたたないうちに、このようなメールが。

おそらく自動応答だと思われますが、要はルールに何かしら違反してるので、アプリケーションの情報と、修正した証拠を送ってくれと…。

何が原因かわからないのに、修正もくそもないだろうと思いましたが、すぐ返信しました。

が、こちらも1週間待っても、何も返ってこず…。

結局解決せずアプリを削除、再度作成

2週間ほど経っても、進展する様子がなかったので、結局アプリを削除しました。

削除と言っても、あくまでAPI上のアプリケーションなので、「アプリケーション名」と「OAuthに必要なキー」を一通り再取得して、手元のプログラムを書き換えるだけの簡単な作業です。

こちらを実施したところ、なんと、普通に動いてしまいました…今まで待った意味…

朱莉
最初からアプリを作り直せばよかったのかもしれませんね

再度停止される可能性もゼロではありませんが、ひとまず運用できるようになったことに安堵しています。

私が、はじめてTwitter APIを使ったのは、1年以上前ですが、その時と比べて、「User authentication settings」という欄の表示が変わっているような気がします。

こちらを開いてみると、以下のように、以前より詳細に設定が入るようになってそうです。

私の場合、投稿がメインで、1人で運用しているので、OAuthは1.0aを選択し「Read and Write」を選択します。

その下の方に行くと、Callback URLやWeb Site などが並んでいますが、昔と比べて、Terms of ServicePricacy Policyの欄が「必須」になっていました。(すみません、自信は無いです…)

昔作成したときは、そういった設定をした記憶がないので、新しく設定が必要になり、それに伴ってTwitter側のチェックに引っ掛かったのかな?と思います。

ちなみに、「SUSPENDED」の期間中は、アプリケーションを新規に作成することも設定の変更や確認もできませんでした…。

考えられる原因について

私のアカウントがSUSPENDEDになった理由については正直わかりません。

私が考えている理由としては、

  1. Heroku上で運用しているネットニュースの自動配信がスパム扱いになった
  2. アプリケーションに必要な設定項目がTwitter上で更新され、必要情報が不足しているアプリケーションが凍結された

かなと思っています。

正直、自動でSUSPENDED判定するにしても、自動判定の理由くらいメールで教えてくれてもいいのに…と思いました。

朱莉
原因がわからないと改善のしようがないですよね。

結局アプリケーションを作成しなおす(所要時間1分ほど)だけで、再度復活できてしまうわけですし、現在使われてないけど動き続けているボットたちを整理するための措置とも考えられます。

このようなAPIは、常に仕様変更と隣り合わせなので、仕方ない側面もあります。

私と同じエラーでAPIが停止された方がいたら、一度アプリを削除してみてください。

進捗があったら、記事にまとめたいと思います。