&tag(Twitter, TwitterAPI); *目次 [#da913970] #contents *参考情報 [#k05df769] -[[MGTwitterEngine – Twitter from Cocoa » Matt Legend Gemmell:http://mattgemmell.com/2008/02/22/mgtwitterengine-twitter-from-cocoa]] -[[How to setup MGTwitterEngine - Stack Overflow:http://stackoverflow.com/questions/2871829/how-to-setup-mgtwitterengine]]…setup方法について。 -[[MGTwitterEngineを使ってラクラクTwitter連携 - Tomute’s Notes:http://d.hatena.ne.jp/tomute/20091029/1256865402]]…xAuth以外はMGTwitterEngineなので。 *ダウンロード [#l30f5f52] http://github.com/mattgemmell/MGTwitterEngineからダウンロードできる。 git clone http://github.com/mattgemmell/MGTwitterEngine.git 自分用 git clone git@github.com:src256/MGTwitterEngine.git *サンプルプロジェクト作成 [#xccec75a] **Xcodeでプロジェクト作成 [#j10fdee1] -種類はなんでもよいのでXcodeで新規プロジェクトを作成する。 **MGTwitterEngineのソースを追加 [#w44a874a] -わかりやすいようにMGTwitterEngineというグループを作ってそこにMGTwitter〜h/MGTwitter〜mと、NSData+Base64.h/.m、NSString+UUID.h/.mを追加する。 **OAuthConsumerのソースコードを取得 [#lb5bd7a2] -[[OAuthConsumer]]のソースコードをダウンロードして、プロジェクトに追加する(全て)。グループを作っておいた方がわかりやすい。 **YAJLのソースコードを取得 [#ied6bbb5] -[[YAJL]]のヘッダ&ライブラリをダウンロードして追加する。グループを作っておいた方がわかりやすい。 -プロジェクトの設定の「他のリンカフラグ(OTHER_LDFLAGS)」(?)で、-ObjC と -all_loadを追加する。 Under 'Other Linker Flags' in the Test target, add -ObjC and -all_load (So NSObject+YAJL category is loaded). **TouchJSON関連ファイルの除去 [#jbd7314b] -最近TouchJSONというJSONライブラリを使うこともできるようになっているらしい。 -今回はYAJLを使うのでTouchJSON関連のファイルを除去しておく(参照を削除)。MGTwitterTouchJSONParser.h/.m **libxmlの設定 [#me8f1b34] -MGTwitterEngine.mの最初のほうを変更 # define USE_LIBXML 1 -ヘッダ検索パスに追加 $SDKROOT/usr/include/libxml2 -ライブラリの追加。Frameworksで右クリックし、追加→既存のフレームワークでlibxml2.dylibを選択。 **タイムラインの取得 [#xfb923fa] RootViewController.mのviewDidLoadなどで試しによびだしてみる。タイムラインが取得できればOK。 #pre{{ #import "MGTwitterEngine" - (void)viewDidLoad { //(省略) MGTwitterEngine *twitterEngine = [[MGTwitterEngine alloc] initWithDelegate:self]; [twitterEngine setUsername:@"xxxx" password:@"yyyyy"]; [twitterEngine getFollowedTimelineSinceID:0 startingAtPage:0 count:10]; } - (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier { //成功した場合 for (NSDictionary *status in statuses) { NSLog(@"Tweet Text: %@", [status objectForKey:@"text"]); } } - (void)requestFailed:(NSString *)connectionIdentifier withError:(NSError *)error { //失敗した場合 NSLog(@"Request failed for connectionIdentifier = %@, error = %@ (%@)", connectionIdentifier, [error localizedDescription], [error userInfo]); } }}