めちゃめちゃハマッたので、覚書しておきたい。
現象: Twitter APIで「つぶやきの投稿」をしようとすると401エラーが返ってくる。パラメータなどは特におかしくないはず。
原因: Twitter側で行うApplication Settingsで「Default Access type」をRead-onlyからRead&Writeに変更しても、うまく反映されないことがある模様。
対策:
http://twitter.com/apps から、アプリケーションをいったん削除して登録しなおす。(Consumer Keyなどは書き変わるので、プログラム側に改めて設定する必要がある)
英語サイトにちょっと情報があったので助かった。 →
http://stackoverflow.com/questions/971369/twitter-api-oauth-cant-send-status-updates-getting-401
詳細
TwitterAPIを利用して「つぶやきの投稿」機能を使いたい場合には、
http://twitter.com/apps からアプリケーションを選び、「Edit Application Settings」でDefault Access typeを「Read & Write」にしておく必要がある。
▲アプリケーションの設定
▲読み書きまたは読み込み専用
ただし、最初から「Read & Write」にしていれば問題なかったのだが、最初「Read-only」にしていて、途中で設定を「Read & Write」に変えた場合には、なんと、この設定が効いていないことがあるのだ。私はこの状態に陥り、二日ほどもやもやしながら過ごした。うーむ、悔しい。
悔しいので、ちくしょうこのやろうと恨みを込めて、ここに覚書しておくことにしよう。