OAuth認証 ライブラリのインストール〜AccessTokenの取得まで

Objective-CTwitter APIを使う 色々 - すぎゃーんメモ
http://d.hatena.ne.jp/sugyan/20100422/1271879805

のリンク先のGithubのライブラリを入れて作業進めてます。

こちらのリンク先のライブラリはARC認証形式ではなく
私はARC認証形式で進めていたのでこのライブラリ部分のビルド形式だけ
ARC認証形式から外してビルドして通して、
取得することが出来ました。

他参考にしたサイト
OAuth承認でTwitterAPI v1.1を利用する
http://memocached.com/?p=151

イカ娘でTwitter OAuth認証
http://yusukebe.com/archives/20120327/175645.html

Objective-CTwitter APIを使う 色々20
http://d.hatena.ne.jp/sugyan/20100422/1271879805

Twitter タイムラインの取得表示

Twitterのタイムラインの取得には
こちらのページを参考にさせてもらいました。

大学院デビュー:TwitterFrameworkの利用
http://extendevernote.blogspot.jp/2012/02/twitterframework.html

こちらのページを参考にさせて頂いて
UITableにタイムラインを表示させることが出来ました。


APIコールを行うURLは
APIver1.1使用に変更になったので
https://api.twitter.com/1.1/statuses/home_timeline.jsonに変更。

ACAccountからタイムライン取得する部分はほとんど参考サイトのまま
画像取得してNSArrayに保存していくよう変更だけ加えました。

[_accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
        if(granted){
            NSArray *accounts = [self->_accountStore accountsWithAccountType:accountType];
            
            if (accounts != nil && [accounts count] != 0) {
                ACAccount *twAccount = [accounts objectAtIndex:0];
                NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/home_timeline.json"];
                NSLog(@"%@",[url absoluteString]);
                NSDictionary *params = [NSDictionary dictionaryWithObject:@"1" forKey:@"include_entities"];
                SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:params];
                request.account = twAccount;
                [request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
                    if (urlResponse){
                        NSError *jsonError;
                        NSArray *timeline = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&jsonError];
                        if(timeline){
                            NSString *output = [NSString stringWithFormat:@"HTTP response status: %ld",(long)[urlResponse statusCode]];
                            NSLog(@"%@", output);
                            NSLog(@"%@",timeline);
                            for (NSDictionary *tweet in timeline) {
                                [tweetTextArray addObject:[tweet objectForKey:@"text"]];
                                NSDictionary *user = [tweet objectForKey:@"user"];
                                [userNameArray addObject:[user objectForKey:@"screen_name"]];
                                [tweetIconArray addObject:[user objectForKey:@"profile_image_url"]];
                                // つぶやきとユーザ名をダンプ
                                NSLog(@"%@",tweet);
                                NSLog(@"%@",[user objectForKey:@"screen_name"]);
                                NSLog(@"%@",[user objectForKey:@"profile_image_url"]);
                                NSLog(@"%lu",(unsigned long)[tweetIconArray count]);
                            }
                            [self.tableView reloadData];
                        }else{
                            NSLog(@"error: %@",jsonError);
                        }
                    }
                }];
            }
        }
    }];

ほとんどそのままで利用出来たのですごく助かりました。
画像をUITableViewに表示する際のセルの高さは
前もって自動計算しないといけないのですが、自動計算の詳細がわからず
大きめに余白をとって表示させていて・・・わかったら書こうorz


他参考にしたサイト
Mac OSでも楽チン ツイート その2 Social.framework
http://blog.sigoo.jp/?p=112

文字列の比較方法メモ(isEqualToStringメソッド , compareメソッド)

NSStringの文字列比較はisEqualToStringではなくてcompareメソッドがいいのか
http://iphone-dev.g.hatena.ne.jp/ktakayama/20130809/1376034733

を見て全然知らなかったことだったのでメモ( ..)φ

分離文字の比較を使ったことがないので、
今すぐどうということはないのだけれど・・・
予期せぬところで引っかからないようにするために
compareメソッドで文字列比較統一して比較するよう書いていこう。

確認に良さそうなサービス app.io

Web コンテンツ内にネイティブ iOS アプリを埋め込めるサービス『app.io』の使い方 - Over&Out その後
http://d.hatena.ne.jp/shu223/20130817/1376694553

この記事すごい。
app.ioのサービスを使うと、
デベロッパー契約しなくても端末で確認できるっぽい。

年間契約切れてしまっていて
端末で確かめたいと思っていたので使ってみよう。