Getting phone number from Facebook Account Kit

前端 未结 4 1127
暗喜
暗喜 2021-02-06 07:25

The Account Kit documentation states that if your began the login session with AccountKitActivity.ResponseType.TOKEN, it\'s possible to access the Account Kit ID, phone number a

相关标签:
4条回答
  • 2021-02-06 07:35

    You can fetch Account ID,Email and Phone number using below code:

        let accountKit = AKFAccountKit(responseType: AKFResponseType.accessToken)
        accountKit.requestAccount { (account, error) in
         if(error != nil){
            //error while fetching information
          }else{
            print("Account ID  \(account?.accountID)")
            if let email = account?.emailAddress,email.characters.count > 0{
                 print("Email\(email)")
            }else if let phoneNum = account?.phoneNumber{
                 print("Phone Number\(phoneNum.stringRepresentation())")
            }
          }
        }
    
    0 讨论(0)
  • 2021-02-06 07:36

    The purpose of using CODE instead of TOKEN is to shift the token request to your application server. The server uses the Graph api to submit the auth token and if the auth token is valid, the call returns the access token which is then used to verify the user's identity for subsequent API calls.

    A graph call to validate the access token returns the account kit id plus additional metadata like the associated phone number and/or email.

    {  
       "id":"12345",
       "phone":{  
          "number":"+15551234567"
          "country_prefix": "1",
          "national_number": "5551234567"
       }
    }
    
    0 讨论(0)
  • 2021-02-06 07:41

    If you have access code/token...

    On server or client, you can exchange access token for mobile number and country code with this FB AccountKit API - https://graph.accountkit.com/v1.1/me/?access_token=xxxxxxxxxxxx. Here xxxxxxxxxx is your Access Token.

    If you have auth code/token instead...

    You can first exchange the access code for an access token on the server side (because it contains the App Secret) with this API - https://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyy|zzzzzzzzzz. Here xxxxxxxxxx, yyyyyyyyyy and zzzzzzzzzz are the auth code, app id and app secret respectively. Once you have the access token with it, you can get the mobile number with the above mentioned API.

    Good Luck.

    0 讨论(0)
  • 2021-02-06 07:54

    Yes, it's possible provided you use LoginType.PHONE in your configuration.

        AccountKit.getCurrentAccount(new AccountKitCallback<Account>() {
            @Override
            public void onSuccess(final Account account) {
                String accountKitId = account.getId();
                PhoneNumber phoneNumber = account.getPhoneNumber();
                String phoneNumberString = phoneNumber.toString();
            }
    
            @Override
            public void onError(final AccountKitError error) {
                // Handle Error
            }
        });
    

    This is your phone number: phoneNumberString; but, account.getEmail() will return null if LoginType.PHONE was used in your configuration.
    Vice versa if you use LoginType.EMAIL in your configuration.

    0 讨论(0)
提交回复
热议问题