Я использовал нижеуказанную ссылку для подтвержденного номера мобильного телефона с помощью набора для учетной записи Facebook.Номер мобильного телефона пользователя, не подтвержденный через учетную запись Facebook, только проверка через смс при использовании учетной записи Facebook kit
https://developers.facebook.com/docs/accountkit/android
Добавить facebook приложение идентификатор, идентификатор клиента и маркер приложения, все необходимые разрешения использовать в manifest
файл как RECEIVE_SMS
, READ_PHONE_STATE
, INTERNET
.
<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 (ххххх), ak_login_protocol_scheme (akxxxxxx) определяют в string.xml и использовать код в приложение, которое упоминается в приведенной выше ссылке. Он работает только для подтвержденного номера мобильного телефона, используя SMS, не проверенную прямую учетную запись 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();
}
}
Перенаправление AccountKitActivity намерение, что вы вставили необходимо только, если вы используете комплект учетной записи электронной почты авторизоваться. Вы можете удалить это, если вы не используете электронную почту. Я не уверен в вашем вопросе - можете ли вы уточнить, что «он работает только для подтвержденного мобильного номера, используя SMS, не проверенную прямую учетную запись facebook». Учетная запись - это отдельный продукт из Facebook Login. –