首页 文章

用户手机号码不通过Facebook帐户验证,仅在使用帐户Facebook工具包时通过短信验证

提问于
浏览
0

我已使用facebook帐户工具包SDK按照以下链接查看已验证的用户手机号码 .

https://developers.facebook.com/docs/accountkit/android

添加facebook app id,客户端ID和应用程序令牌, manifest 文件中所有必需的权限使用,如 RECEIVE_SMSREAD_PHONE_STATEINTERNET .

<activity
        android:name="com.facebook.accountkit.ui.AccountKitActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/ak_login_protocol_scheme" />
        </intent-filter>
    </activity>

FACEBOOK_APP_ID(xxxxxxx),ACCOUNT_KIT_CLIENT_TOKEN(xxxxx),ak_login_protocol_scheme(akxxxxxx)在string.xml中定义并使用上面链接中提到的应用程序中的代码 . 它只适用于经过验证的手机号码使用短信未经验证的直接facebook帐户 . 请为我提供解决此问题的任何解决方案 .

MainActivity类

public class MainActivity extends AppCompatActivity implements  View.OnClickListener {
    Button send;
    public static int APP_REQUEST_CODE = 99;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AccountKit.initialize(getApplicationContext());
        send = (Button) findViewById(R.id.send);
        send.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        onLoginPhone();
    }

    public void onLoginPhone() {
        final Intent intent = new Intent(this, AccountKitActivity.class);
        AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder(LoginType.PHONE, AccountKitActivity.ResponseType.TOKEN);
        intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build());
        startActivityForResult(intent, APP_REQUEST_CODE);
    }

    @Override
    protected void onActivityResult(
        final int requestCode,
        final int resultCode,
        final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == APP_REQUEST_CODE) { // confirm that this response matches your request
            AccountKitLoginResult loginResult = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY);
            String toastMessage;
            if (loginResult.getError() != null) {
                toastMessage = loginResult.getError().getErrorType().getMessage();
                Toast.makeText(this, "Get Error " + loginResult.getError(), Toast.LENGTH_LONG).show();
            } else if (loginResult.wasCancelled()) {
                toastMessage = "Login Cancelled";
            } else {
                if (loginResult.getAccessToken() != null) {
                    toastMessage = "Success:" + loginResult.getAccessToken().getAccountId();
                } else {
                    toastMessage = String.format("Success:%s...", loginResult.getAuthorizationCode().substring(0, 10));
                }
                Toast.makeText(this, "Successfully done", Toast.LENGTH_LONG).show();
            }
            Toast.makeText(this, toastMessage, Toast.LENGTH_LONG).show();
        }
    }

1 回答

  • 0

    ak_login_protocol_scheme是你的id应用添加“ak”例子:

    <string name="app_id">1455555555555555555/string>
    <string name="ACCOUNT_KIT_CLIENT_TOKEN">332555dcdcddccszzd</string>
    
    <string name="ak_login_protocol_scheme">ak1455555555555555555</string>
    

相关问题