現時点での正しいMGTwitterEngineのインストール方法

MGTwitterEngineiPhoneTwitterアプリを作る際に、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
5. 動作が確認できたら MATwitterEngine, OAuthConsumerグループにあるファイルを、あなたの iPhoneプロジェクトにコピーします。

iPhoneプロジェクトに Security.framework, libxml2.dylib を追加するのを忘れずに!