Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2012年12月13日

MGTwitterEngine Twitter API 1.1対応



iOS5でTwitter Frameworkが、iOS6でSocial Frameworkが追加されたため、Twitter連携の実装は比較的容易になったが、iOS4以前に対応させるアプリや、iOS4以前からリリースしているアプリでは、既存ライブラリを使ってTwitter連携を行っていることが多い。

MGTwitterEngineを使うのが代表的と言えるが、2013年3月以降にTwitter APIがバージョン1.1に完全に移行され、Twitterとの連携はJSONのみ対応となるため、XMLで連携を行っている場合はJSONで対応するように修正する必要がある。

■ 暫定的な対応
MGTwitterEngine.m を下記の通り修正する。
#define TWITTER_DOMAIN @"api.twitter.com/1"

上記の場合、Twitter API 1.0を使用してXML連携が可能。
但し、使用期限はTwitter API 1.0の運用が終了する2013年2月末までとなる。


■ 恒久的対応
JSON連携するためのライブラリのインポートその他が必要。

1. YAJLiOS.frameworkをインポートする。
(1) githubから、iOS向けのYAJLライブラリをダウンロードする。(2012年12月13日現在、「YAJLiOS-0.3.1.zip − YAJL 0.3.1 for iOS 」)
https://github.com/gabriel/yajl-objc/downloads

(2) (1)を展開したものを、ターゲットプロジェクトのFrameworksにコピーする。

(3) XcodeでBuild Settingsを開き、「Other Linker Flags」に「 -ObjC 」と「 -all_load 」を追加する。


2. MGTwitterEngineのJSON連携のライブラリをインポートする。
MGTwitterEngineをXMLでTwitterと連携させている場合、JSON関係のライブラリを削除して運用していることがあるので、改めてインポートする。

(1) githubからMGTwitterEngineをダウンロードする。
https://github.com/mattgemmell/MGTwitterEngine

(2) (1)の MGTwitterEngine-masterからMGTwitterEngine.xcodeprojをXcodeで開き、Twitter YAJL Parsersフォルダ以下のクラスファイルを全て、ターゲットプロジェクトにコピーする。


3. YAJLライブラリをインポートする。
(1) githubからYAJLライブラリをダウンロードする。
https://github.com/thinglabs/yajl-objc

(2) (1)のファイルから下記のヘッダファイルを探して、ターゲットプロジェクトにコピーする。

NSObject+YAJL.h
yajl_common.h
yajl_gen.h
yajl_parse.h
YAJL.h
YAJLDocument.h
YAJLGen.h
YAJLParser.h


4. MGTwitterEngineで、Twitter API 1.1を使用してJSON連携するように修正する。
(1) MGTwitterEngine.m
#define USE_LIBXML 0
#define TWITTER_DOMAIN @"api.twitter.com/1.1"


(2) MGTwitterEngineGlobalHeader.h
#define YAJL_AVAILABLE 1




参考記事;
https://github.com/mattgemmell/MGTwitterEngine/issues/107
http://tkyk.name/blog/2011/03/25/iOS-Objective-C-ios_json_yajl/
http://uneri-no-shinzui.blogspot.jp/2011/03/iphone-mgttwitterenginejson.html
http://damienh.org/2009/06/20/setting-up-mgtwitterengine-with-yajl-106-for-iphone-development/


タグ:IOS iPAD iPhone
posted by mobileDeveloper at 01:06 | Comment(0) | TrackBack(0) | Twitter はてなブックマーク - MGTwitterEngine Twitter API 1.1対応 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。