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

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

ただいまの
回答率

90.60%

  • Swift

    7041questions

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

  • iOS

    3903questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • AWS(Amazon Web Services)

    1912questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Facebook

    397questions

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

swiftでAWSCognitoに認証する際、「Use of unresolved identifier 'AWSCognitoLoginProviderKey'」というエラーが出る

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 184

lernon

score 4

 前提・実現したいこと

cognitoによるFacebook認証処理を実装したい

 発生している問題・エラーメッセージ

Use of unresolved identifier 'AWSCognitoLoginProviderKey'

 該当のソースコード

override func viewDidAppear(_ animated: Bool) {

        let token = FBSDKAccessToken.current()
        if (nil != token) {
            FBSDKGraphRequest(
                graphPath: "me", parameters: ["fields": "name"]
                ).start(completionHandler: { (connection, result, error) -> Void in
                    if (nil == error) {
                        guard let data = result as? [String:Any] else { return }
                        self.myName = data["name"] as! String
                        print("myName:", self.myName)
                    } else {
                        print("Error:", error?.localizedDescription as Any)
                        //前の画面に戻る
                        self.dismiss(animated: true, completion: nil)
                    }
                })
        } else {
            // トークンが取得できなかった場合
            self.dismiss(animated: true, completion: nil)
        }

        let credentialsProvider = AWSCognitoCredentialsProvider( regionType: self.REGION_TYPE, identityPoolId: self.IDENTITY_POOL_ID)
        let configuration = AWSServiceConfiguration ( region: self.REGION_TYPE, credentialsProvider: credentialsProvider)
        AWSServiceManager.default().defaultServiceConfiguration = configuration
        credentialsProvider.logins = [AWSCognitoLoginProviderKey.Facebook.rawValue: token.tokenString] //←エラー「Use of unresolved identifier 'AWSCognitoLoginProviderKey'」

    }

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

xcode Version 9.3
ios 11.3
cocoapods 1.5.0
↓導入したPods
AWSAuthCore (2.6.16)
AWSAuthUI (2.6.16)
AWSCognitoIdentityProvider (2.6.16)
AWSCognitoIdentityProviderASF (1.0.1)
AWSCore (2.6.16)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

おそらくこれと同じ問題ではないでしょうか?
https://teratail.com/questions/87002
たどっていくとAWS iOS SDK 2.4.0以上ではFacebook認証は動かないということだそうです。

AWS公式サイトのFacebookとの統合方法
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/facebook.html

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/17 19:44

    いつも助けていただいてありがとうございます。
    AWS iOS SDK 2.4.0以上だとFacebook認証は動かないんですね。

    送っていただいた
    https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/facebook.html

    https://qiita.com/Takuro-Ito/items/2cf927a2af2f686e9f39
    を参考にしながら、カスタムクラスを作る対処を行なったのですが、

    ↓のクラスを作った後どのようにuserpoolにログインするのかがわかりません・・・
    class FacebookProvider: NSObject, AWSIdentityProviderManager {

    func logins() -> AWSTask<NSDictionary> {
    if let token = AccessToken.current?.authenticationToken {
    return AWSTask(result: [AWSIdentityProviderFacebook:token])
    }
    return AWSTask(error:NSError(domain: "Facebook Login", code: -1 , userInfo: ["Facebook" : "No current Facebook access token"]))
    }
    }

    質問文のコード(
    credentialsProvider.logins = [AWSCognitoLoginProviderKey.Facebook.rawValue: token.tokenString]
    )を↓のように変えてみたのですが、こういった方向性で合っているのでしょうか?
    let myFBProvider = FacebookProvider.self
    credentialsProvider.logins = myFBProvider.logins(FacebookProvider)

    質問ばかりで申し訳ないのですが、お時間が空いていましたら教えたいただけないでしょうか?

    キャンセル

  • 2018/04/17 20:11

    ごめんなさい。Facebook認証は詳しくないので調べた結果になって恐縮なのですが、下記の内容など何か参考になりますでしょうか?
    https://stackoverflow.com/questions/39807894/swift-aws-cognito-facebook-login

    キャンセル

  • 2018/04/20 20:57

    回答が遅れて申し訳ありません。

    送っていただいたURLを参考に試してみたのですが、上手くいかず・・・
    AWSに関する新しい書籍が出ていたのでそちらを購入して、別のやり方はないか考えてみます。

    何度もありがとうございます!

    キャンセル

  • 2018/04/21 06:53

    お役に立てずすいません。Cognitoを使用する方法としては下記の記事も参考になるかもしれません。
    https://qiita.com/sirotosiko/items/b94f21fc6ef9967be2fe

    キャンセル

  • 2018/04/21 07:05

    とんでもないです!
    記事ありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Swift

    7041questions

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

  • iOS

    3903questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • AWS(Amazon Web Services)

    1912questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Facebook

    397questions

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

  • トップ
  • iOSに関する質問
  • swiftでAWSCognitoに認証する際、「Use of unresolved identifier 'AWSCognitoLoginProviderKey'」というエラーが出る