Я реализую Facebook Войти в моем приложении для Android. Проблема заключается в том, что когда я запускаю приложение, он перенаправляется на страницу входа в facebook одним нажатием кнопки в моей основной деятельности. Когда я вводим учетные данные, отображается белая страница, и ничего не происходит. Кроме того, если я запустил приложение во второй раз, появляется только пустая страница. Я попытался включить/выключить функцию единого знака на странице настроек разработчика на facebook, но это не помогло. Вот мой код активности входа в Facebook.Facebook Войти Проблема в android
public class FacebookLogin extends Activity {
// Your Facebook APP ID
private static String APP_ID = "xxxxxxx"; // Replace with your App
// ID
// Instance of Facebook Class
private Facebook facebook = new Facebook(APP_ID);
private AsyncFacebookRunner mAsyncRunner;
String FILENAME = "AndroidSSO_data";
private SharedPreferences mPrefs;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAsyncRunner = new AsyncFacebookRunner(facebook);
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
// Start AsyncTASK here
loginToFacebook();
} else {
DialogClass
.createDAlertDialog(
FacebookLogin.this,
"Please Check Internet Connection \n Please Turn on Internet",
true);
}
}
/**
* Function to login into facebook
* */
@SuppressWarnings("deprecation")
public void loginToFacebook() {
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if (access_token != null) {
facebook.setAccessToken(access_token);
Log.d("FB Sessions", "" + facebook.isSessionValid());
}
if (expires != 0) {
facebook.setAccessExpires(expires);
}
if (!facebook.isSessionValid()) {
facebook.authorize(this,
new String[] { "email", "publish_stream" },
new DialogListener() {
@Override
public void onCancel() {
// Function to handle cancel event
}
@Override
public void onComplete(Bundle values) {
// Function to handle complete event
// Edit Preferences and update facebook acess_token
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token",
facebook.getAccessToken());
editor.putLong("access_expires",
facebook.getAccessExpires());
editor.commit();
}
public void onAuthFail(String error) {
Log.e("FB", "AuthFailed: " + error);
Toast.makeText(FacebookLogin.this, "Auth fail",
Toast.LENGTH_LONG).show();
startActivity(new Intent(FacebookLogin.this,
SignIn.class));
}
public void onAuthSucceed() {
Log.e("FB", "AuthSucceed");
Toast.makeText(FacebookLogin.this, "Auth success",
Toast.LENGTH_LONG).show();
startActivity(new Intent(FacebookLogin.this,
Logout.class));
}
@Override
public void onError(DialogError error) {
// Function to handle error
}
@Override
public void onFacebookError(FacebookError fberror) {
// Function to handle Facebook errors
}
});
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
/**
* Function to show Access Tokens
* */
public void showAccessTokens() {
String access_token = facebook.getAccessToken();
Toast.makeText(getApplicationContext(),
"Access Token: " + access_token, Toast.LENGTH_LONG).show();
}
/**
* Function to Logout user from Facebook
* */
@SuppressWarnings("deprecation")
public void logoutFromFacebook() {
mAsyncRunner.logout(this, new RequestListener() {
@Override
public void onComplete(String response, Object state) {
Log.d("Logout from Facebook", response);
if (Boolean.parseBoolean(response) == true) {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
}
}
@Override
public void onIOException(IOException e, Object state) {
}
@Override
public void onFileNotFoundException(FileNotFoundException e,
Object state) {
}
@Override
public void onMalformedURLException(MalformedURLException e,
Object state) {
}
@Override
public void onFacebookError(FacebookError e, Object state) {
}
});
}
}
У вас есть свой идентификатор приложения с вами ... вы его создали? –
Код, который вы используете, содержит более старый api в facebook, который устарел. Попробуйте использовать уровень api 3. –
Да, у меня есть мой идентификатор приложения. – UselessNoob