質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Facebook Graph API

Facebook Graph APIとは Facebookのグラフデータベース用のAPIであり、対応言語はPHP、Perl、ActionScript、JavaScriptなどがあります。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

297閲覧

iOSでFacebookログインの実装時に、ユーザーの性別や年齢層を取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Facebook Graph API

Facebook Graph APIとは Facebookのグラフデータベース用のAPIであり、対応言語はPHP、Perl、ActionScript、JavaScriptなどがあります。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2018/06/20 11:53

編集2018/06/20 11:59

前提・実現したいこと

現在、Swift4でiOSアプリの開発をしています。
その中でユーザーの性別や年齢でクエリをかけたい部分があり、ログイン(新規登録)時にその情報をFacebookから取得してきたいと考えています。

現状

swift

1 2 let loginManager = LoginManager() 3 // Facebook へログイン 4 loginManager.logIn(readPermissions: [.email, .publicProfile, .userFriends], viewController: self) { result in 5 switch result { 6 case .success(_, _, let token): 7 8 // Facebook からユーザー情報を取得 9 GraphRequest(graphPath: "me", parameters: ["fields":"email,first_name,last_name,gender,picture"]).start { (response, result) in 10 switch result { 11 case .success(let response): 12 13 let credential = FacebookAuthProvider 14 .credential(withAccessToken: token.authenticationToken) 15 16 // Firebase への認証 17 Auth.auth().signIn(with: credential) { (user, error) in 18 if let error = error { 19 // error handling 20 print(error.localizedDescription) 21// AppDelegate.instance().dismissActivityIndicator() 22 23 let errorAlert = UIAlertController(title: "Oooops", message: "エラーが発生しました。(error.localizedDescription)", preferredStyle: .alert) 24 let okAction = UIAlertAction(title: "閉じる", style: .default, handler: nil) 25 26 errorAlert.addAction(okAction) 27 28 self.present(errorAlert, animated: true, completion: nil) 29 30 return 31 32 } else { 33 if let data = response.dictionaryValue { 34 print("SUCCESS (data)") 35 } 36 37 } 38 } 39 case .failed: 40 // error handling 41 print("ERROR OMG(result)") 42 43 break 44 } 45 } 46 case .cancelled: // Facebook へのログインがキャンセルされた 47 break 48 case .failed: // Facebook へのログインが失敗した 49 break 50 } 51 } 52

現状としてましては、Facebook認証によってFirebaseAuthの認証をすることはできていて、以下のようなコールバックも確認できています。しかし、genderの取得ができない(nil)状態です。

Swift

1 2 3["picture": { 4 data = { 5 height = 50; 6 "is_silhouette" = 0; 7 url = "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=2091500631114271&height=50&width=50&ext=1529754550&hash=◯◯◯"; 8 width = 50; 9 }; 10}, "last_name": ◯◯◯, "email": ◯◯◯, "id": ◯◯◯, "first_name": ◯◯◯] 11 12 13

試したこと

調べてみると、genderなどの情報を取得するためにはFacebookに申請が必要なそうですが、アカウントが開発者アカウントな場合はそれはまだ必要ないのだと認識しています。

補足情報(FW/ツールのバージョンなど)

Swift4, Firestore, FirebaseAuth などを使用しています。
Facebook関連のライブラリはcocoapodsで入れました。

ruby

1 # Facebook 2 pod 'FacebookCore' 3 pod 'FacebookLogin' 4 pod 'FacebookShare'

これまでにiOSアプリケーションなどにおいて、Facebook認証時に性別や年齢などの情報を取得した経験のあるかたがいらっしゃしましたら、ご助言をいただければと思います。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問