現時点での正しいMGTwitterEngineのインストール方法
MGTwitterEngine はiPhoneでTwitterアプリを作る際に、Twitter APIのハンドリングや面倒な xAuthを行ってくれる便利なライブラリーです。インストール方法も日本語で ここ や ここ に書かれていますが、過去のもので現時点ではもっと簡単に出来ます。
MGTwitterEngineはデータフォーマット(XML/JSON)とそのパーサーライブラリーを選択肢出来るようになっていますが、ここでは一番インストールが簡単そうな libXML を選択しました。
インストールの手順は GitHubのWiki に書かれていますのでこの手順を参考にしました。
1. MGTwitterEngine とXAuth(OAuth)ライブラリー OAuthConsumer のダウンロード
% git clone https://github.com/mattgemmell/MGTwitterEngine % cd MGTwitterEngine % git clone http://github.com/jdg/oauthconsumer
2. Xcodeをオープンし不要なグループを削除
Xcodeで MGTwitterEngine.xcodeproj をオープンし
libXML 以外のパーサーライブラリーは不要なので 以下のグループは削除します
3. OAauthConsumerの調整
- OAauthConsumerグループを右クリック、Add Files to で oauthconsumer/Cryptoを追加
- typoのCrytpoグループを削除
- ファイル名が赤くなっている OAToken_KeychainExtensions.h/m を削除
4. Mac上で動作を確認
MGTwitterEngineは Mac上で Demoグループにある AppControllerプログラムで動作を確認できますので動かしてみましょう。
- Projectの設定を変更します
- LibXMLを使うように設定。 MGTwitterEngine.mの USE_LIBXMLを1にします
#ifndef USE_LIBXML // if you wish to use LibXML, add USE_LIBXML=1 to "Precompiler Macros" in Project Info for all targets # define USE_LIBXML 1 #endif
- Twitterのログイン/xAuthキー情報を AppController.m に書く
xAuthキー情報 はTwitterサポートへ利用申請のメールを出すともらえます(詳細は ここ を見て下さい)
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Put your Twitter username and password here: NSString *username = nil; NSString *password = nil; NSString *consumerKey = nil; NSString *consumerSecret = nil;
- ビルドし実行するとコンソールに結果が表示されます。
2011-07-03 18:41:04.313 MGTwitterEngine[2638:903] Request succeeded for connectionIdentifier = AB893C2F-32C9-43CF-9272-CEEE4EC11BD7 2011-07-03 18:41:04.315 MGTwitterEngine[2638:903] here at parsingSucceededForRequest 2011-07-03 18:41:04.315 MGTwitterEngine[2638:903] Access token received! Key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2011-07-03 18:41:04.315 MGTwitterEngine[2638:903] MGTwitterEngine: finalURL = http://api.twitter.com/1/statuses/public_timeline.xml 2011-07-03 18:41:04.316 MGTwitterEngine[2638:903] getPublicTimelineSinceID: connectionIdentifier = D478CA41-50F8-4EED-838E-983711218765 2011-07-03 18:41:04.316 MGTwitterEngine[2638:903] MGTwitterEngine: finalURL = http://api.twitter.com/1/statuses/home_timeline.xml?count=20 2011-07-03 18:41:04.316 MGTwitterEngine[2638:903] getHomeTimelineFor: connectionIdentifier = 582CE34D-CD1F-4F08-82A0-63EAB209F8BD 2011-07-03 18:41:04.317 MGTwitterEngine[2638:903] MGTwitterEngine: finalURL = http://api.twitter.com/1/statuses/user_timeline/chockenberry.xml?count=3 2011-07-03 18:41:04.317 MGTwitterEngine[2638:903] getUserTimelineFor: connectionIdentifier = 444B4766-E0AD-4935-A50B-01A7400DDE8C 2011-07-03 18:41:04.317 MGTwitterEngine[2638:903] MGTwitterEngine: finalURL = http://api.twitter.com/1/statuses/show/1131604824.xml 2011-07-03 18:41:04.350 MGTwitterEngine[2638:903] getUpdate: connectionIdentifier = 3ECF7FCA-8C99-48F5-9BFF-A8CEAB3EE16D 2011-07-03 18:41:04.351 MGTwitterEngine[2638:903] MGTwitterEngine: finalURL = http://api.twitter.com/1/statuses/replies.xml 2011-07-03 18:41:04.351 MGTwitterEngine[2638:903] getRepliesStartingAtPage: connectionIdentifier = FBAB15D3-860B-449B-9DC8-49D029CF744C 2011-07-03 18:41:04.351 MGTwitterEngine[2638:903] Connection finished AB893C2F-32C9-43CF-9272-CEEE4EC11BD7 2011-07-03 18:41:04.628 MGTwitterEngine[2638:903] Request succeeded for connectionIdentifier = 3ECF7FCA-8C99-48F5-9BFF-A8CEAB3EE16D 2011-07-03 18:41:04.630 MGTwitterEngine[2638:903] here at parsingSucceededForRequest 2011-07-03 18:41:04.631 MGTwitterEngine[2638:903] Got statuses for 3ECF7FCA-8C99-48F5-9BFF-A8CEAB3EE16D: ( { "created_at" = "2009-01-20 07:26:06 +0900"; favorited = 0; id = 1131604824; "retweet_count" = 0; ・・・ ・・・ ・・・ 2011-07-03 18:41:05.345 MGTwitterEngine[2638:903] Connection finished FBAB15D3-860B-449B-9DC8-49D029CF744C