[Xcode]Twitter-OAuth-iPhone Twitter API 1.1対応

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のエンコード

参考サイト:
MGTwitterEngine Twitter API 1.1対応: iPhoneアプリ開発備忘録

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする