繁体   English   中英

从Facebook Account Kit获取电话号码

[英]Getting phone number from Facebook Account Kit

Account Kit文档指出,如果您使用AccountKitActivity.ResponseType.TOKEN开始登录会话,则可以通过调用getCurrentAccount()来访问当前帐户的帐户工具包ID,电话号码和电子邮件。

如果您开始使用AccountKitActivity.ResponseType.CODE,就像Saavn那样,是否可以获取用户的电话号码?

是的,如果您在配置中使用LoginType.PHONE,则可以使用它。

    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
        }
    });

这是您的电话号码:phoneNumberString; 但是,如果在配置中使用了LoginType.PHONE,则account.getEmail()将返回null。
反之亦然,如果您在配置中使用LoginType.EMAIL。

使用CODE而不是TOKEN的目的是将令牌请求转移到您的应用程序服务器。 服务器使用Graph api提交auth令牌,如果auth令牌有效,则调用返回访问令牌,然后用于验证用户对后续API调用的身份。

验证访问令牌的图形调用返回帐户工具包ID以及其他元数据,如关联的电话号码和/或电子邮件。

{  
   "id":"12345",
   "phone":{  
      "number":"+15551234567"
      "country_prefix": "1",
      "national_number": "5551234567"
   }
}

您可以使用以下代码获取帐户ID,电子邮件和电话号码:

    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())")
        }
      }
    }

如果您有access code/token ......

serverclient ,您可以使用此FB AccountKit API交换access token以获取mobile number and country code - https://graph.accountkit.com/v1.1/me/?access_token=xxxxxxxxxxxx 这里xxxxxxxxxx是您的Access Token

如果你有auth code/token而不是......

您可以首先使用此APIserver side交换access tokenaccess code (因为它包含App Secret ) - https://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA | yyyyyyyyyy | zzzzzzzzzz 这里xxxxxxxxxxyyyyyyyyyyzzzzzzzzzz分别是auth codeapp idapp secret access token后,您可以使用上述API获取mobile number

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM