私は運営するサービスでTwitter連携(WordPressに投稿したら自動的にTweetされるように)する時に、WP to Twitterというプラグインを使っています。Jetpackにもこの機能はあるんですけど、短縮URLが選べたり、ハッシュタグを付けられたりする自由度の高さでこちらを使用しています。
が、先日からうまく連携できなくなり、このようなエラーが表示されるようになりました。
One or more of your last posts has failed to send a status update to Twitter. The Tweet has been saved, and you can re-Tweet it at your leisure.
Code : Twitter did not return a recognized response code.
認証エラーではなく、クエリの失敗でもない
認証エラーではなさそうです。エラーメッセージを読んでみると、コードなし、「Twitterからは認識できるレスポンスコードが帰ってきませんでした」というエラーメッセージでした。
少し調べてみると、結構前にプラグイン作者のJoe Dolson氏がフォーラムで回答しているのを発見しました。
Joe Dolson
Member
Plugin Author
Posted 2 years ago #Are either of you on Bluehost? Bluehost has a known issue with Twitter blocking some of their shared IP blocks at the moment. “Code 0″ means that the query isn’t successfully reaching Twitter, so Twitter is not returning any response — this is a common issue if your host is being blocked by Twitter.
WordPress › Support » [Plugin: WP to Twitter] Response code “0””
意訳:君たち、Bluehostを使ってない? Bluehostが共有IPがたまにTwitterからブロックされる既知の問題があるんだよ。「コード:0」は「クエリーがTwitterに到達しなかった」という意味ではなくて、「Twitterから何のレスポンスも帰ってこなかった」という意味なんだ。(これはホストサーバーがTwitterにブロックされた時の一般的な挙動だね)
共用サーバーがブロックされてしまったら
Bluehostというのはアメリカのメジャーなレンタルサーバーサービスです。つまり、共用サーバーでイタズラな使い方をしたユーザーがいて、TwitterからIPごとブロックされてしまった場合に起こるエラーということですね。
ホスティング会社が察知して、何らかの対応をとってTwitterのブロックが解除されるのを待つしかないようです。
制限解除まではJetpackを使うことにしましょう。
JetpackはAutomaticのサーバーから発信されるので、WordPressを動かしているサーバーの制約を受けないというのはこういう場合利点ですね。