BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

Twitter APIへのアクセスで401エラーが出る。

今更こんなところでハマるかよ・・・という内容ですが、ありそうな気もするのでメモ。

Twitterへ投稿する際にAPIエラーが出る。

「Could not authenticate you.」つまり認証することができませんでした。となっている。
不思議なのは、投稿する前に行ったOAuth認証を通すリクエストは問題なく完了していること。
さらに不思議なのは、投稿する際にエラーが出ない場合もあるということ。

TwitterAPIのURLはHTTPS:から。

結論としてはAPIのURLを「SSL対応」にしているかどうかだった。
独自クラス Twitter.m(一部抜粋)

    //下記のhttp:->https:に変更する。
    [self request: @"http://api.twitter.com/1/statuses/update.json"
           method: @"POST"
           body: [NSString stringWithFormat:@"status=%@",status ];

なんでエラーが出ない場合があるか?


普段あまり見ない(と思われる)Twitterのユーザー情報設定画面内に「HTTPSのみ」という項目がある。今回検証のためにチェックを外しているが実際はもともとチェックが付いていた。
こちらにチェックが入っていることによって今回のAPIリクエスト時にエラーがでていた模様。

ということなので

ユーザーは常にSSLを利用してアクセスする設定にしていると思っていいので、今後TwitterAPIのURLはHTTPS:からで。