SLRequest 使って直接 Twitter API をたたいてる機能が、コードいじってないのにエラーになるようになったので、調べてみると、NSJSONSerialization でエラーが出ていました。
Twitter API からのレスポンスに何か変更あったのかな、と
typedef void(^SLRequestHandler)(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error);
この SLRequestHandler の引数の中身を見てみると、
- errorは出てない
- responseData が空
- urlResponse の中身をみると、status code が 403
となってました。
調べてみると、2014年1月14日からSSL接続のみ受け付けるようになったとのこと。
- Server returned HTTP response code: 403 for URL | Twitter Developers
- Restricting api.twitter.com to SSL/TLS traffic | Twitter Developers
対処
確かに、ちょうどそのAPIはhttpでアクセスしてたので、
http://api.twitter.com/1.1
を
https://api.twitter.com/1.1
に修正して解決。
あと今後のことも考えると、error の有無だけじゃなくて、status code も見るようにしたほうがよさそう。