2013/3/5から、Twitter API 1.0が使えなくなります。
Twitter API 1.1リリース 開発者の対応リミットは2013年3月5日に – ITmedia ニュース
Tweetbotの更新情報にて知りました。
Cocoamixアプリでは、うんたかとあみくじで、Twitter-OAuth-iPhone、MGTwitterEngineを利用したTwitterへの投稿だけ行ってますが、対応しないといけない部分です。
以前、TwitterAPI呼出し時にバージョン番号を入れないと404エラーになってしまうことがあって、一度対応しかけましたが、結局1.1には未対応のままです。
Cocoamix.jp » MGTwitterEngineで404
具体的には、サーバとの電文がxmlではなくjson形式となるため、送受信部分のやりとりが変わります。
とりあえず投稿ができるようにだけするには、以下の対応でできています。
Twitter-OAuth-iPhoneを使ってました。
https://github.com/bengottlieb/Twitter-OAuth-iPhone
この中の、MGTwitterEngineを最新版に丸々置き換え、yajlフレームワークを追加します。
MGTwitterEngine
https://github.com/mattgemmell/MGTwitterEngine/
利用しないファイル
YAJLParser以外 *JSONParser.h や .mなどは含める必要はない。
Objc用のyajlフレームワーク
https://github.com/gabriel/yajl-objc/downloads
YAJLiOS-0.3.1.zip — YAJL 0.3.1 for iOS
YAJLiOS.frameworkフォルダを、プロジェクト内のFrameworksに追加。
Xcode4.3などでビルドしているアプリは、
YAJL 0.2.26 for iOS 4.x, 3.x
を利用する必要あり。
YAJLiOS.frameworkフォルダ内のヘッダ群を、プロジェクトへ追加。
MGTwitterEngineで、以下部分の修正
MGTwitterEngineGlobalHeader.h #define YAJL_AVAILABLE 1 MGTwitterEngine.m #define TWITTER_DOMAIN @"api.twitter.com/1.1"
Twitter-OAuth-iPhoneと、MGTwitterEngineのバージョンが噛み合っていないので、宣言がぶつかっています。
MGTwitterEngine.h 内の、以下3つを別名にリネーム。
// OAuth NSString *_consumerKey; NSString *_consumerSecret; OAToken *_accessToken;
利用個所もリネーム。
雑な対応ですが、
Twitter-OAuth-iPhoneを利用して、投稿だけを行っていた場合は、上記の対応で投稿&ステータスの取得はできています。
投稿時のエスケープが足りないため、追加する必要があります。
以下を参照。
[Xcode]MGTwitterEngineのエンコード