【iOS】デバイスのTwitterアカウント情報へアクセスする
ゴール
記録
まず空のアプリつくる
- Xcode起動
- SingleViewApplicationを選択してCreate New
- 実機に向けてrunして真っ白画面出ることを確認
詳細割愛
参考
- ACAccountStore - Accounts | Apple Developer Documentation
- iOS 5への Twitterアカウントの登録とアプリからのアクセス - Debian GNU/Linux 3.1 on PowerMac G4
- Accounts.frameworkを使ってFacebookのアクセストークンとか、メールアドレスを取得する - Qiita
- ACAccount Twitterのuser_idを取得する - Qiita
必要なframeworkを追加する
ここで+
Accounts.frameworkを検索して追加
launchと同時でよいので
AppDelegate.m
のdidFinishLaunchingWithOptions
に直で以下を書く
diff --git a/iTwitterAccoutSample/TwitterAccoutSampleAppDelegate.m b/iTwitterAccoutSample/TwitterAccoutSampleAppDelegate.m index a97d4ea..f044e56 100644 --- a/iTwitterAccoutSample/TwitterAccoutSampleAppDelegate.m +++ b/iTwitterAccoutSample/TwitterAccoutSampleAppDelegate.m @@ -8,11 +8,42 @@ #import "TwitterAccoutSampleAppDelegate.h" +// (1) importしまーす +#import <Accounts/Accounts.h> + @implementation TwitterAccoutSampleAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. + + // (2) とりあえずここに書いちゃおう + ACAccountStore *store = [ACAccountStore new]; + ACAccountType *type = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter]; + // optionsって何渡せばいいか分からんので、とりあえず空のやつでいいや + // NSDictionary *options = @{}; + // しらべた感じ、何も要らないならnilを渡せって言われた + + // (3) ユーザに許可要求する + [store requestAccessToAccountsWithType:type options:nil completion:^(BOOL granted, NSError *error) { + if (! granted) { + NSLog(@"%@", error); + return; + } + // (4) 許可されたので、取得する + NSArray *accounts = [store accountsWithAccountType:type]; + // (5) 許可されたけど、無かったりして + if (accounts.count < 1) { + return; + } + // (6) とりあえず最初のやつで + ACAccount *account = accounts[0]; + NSLog(@"取得できたやつ %@", NSStringFromClass([account class])); + NSLog(@"ユーザネーム? %@", [account username]); + NSLog(@"ユーザID? %@", [[account valueForKey:@"properties"] objectForKey:@"user_id"]); + return; + }]; + return YES; }
実行してみる
ダイアログが出た
許可すると…
Xcodeのコンソールに
バッチグーっぽい
詰まったところ
requestAccessToAccountsWithType
の第二引数options
に何渡していいか分からん
雑感
- ObjectiveCの文法とかAppleの証明書とか色々とっつきにくいけれど慣れれば良い感じ
- クラスやそのメソッドについての解説はやっぱり公式が一番良いと感じた
- 証明書とか申請関係は野良ドキュメントの方が親切
DRYな備忘録
本気ではじめるiPhoneアプリ作り Xcode 8.x+Swift 3.x対応 (ヤフー黒帯シリーズ)
- 作者: 西磨翁
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/12/10
- メディア: Kindle版
- この商品を含むブログを見る
絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第5版 【Swift 3 & iOS 10.1以降】 完全対応 (Informatics&IDEA)
- 作者: 高橋京介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/11/30
- メディア: 単行本
- この商品を含むブログを見る