如何Facebook登录在Backendless集成?

问题描述 投票:0回答:1

这是我的LoginActivity.java

public class LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener,
    View.OnClickListener {

@BindView(R.id.login_facebook)
Button loginFacebookBtn;

@BindView(R.id.privacy_policy)
TextView privacyPolicy;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    ButterKnife.bind(this);




    Backendless.setUrl(AppConstant.SERVER_URL);
    Backendless.initApp(this, AppConstant.APPLICATION_ID, AppConstant.API_KEY);




    String userToken = UserTokenStorageFactory.instance().getStorage().get();

    if (userToken != null && !userToken.equals("")) {

        Backendless.UserService.isValidLogin(new DefaultCallback<Boolean>(this) {
            @Override
            public void handleResponse(Boolean isValidLogin) {
                if (isValidLogin && Backendless.UserService.CurrentUser() == null) {
                    String currentUserId = Backendless.UserService.loggedInUser();

                    if (!currentUserId.equals("")) {
                        Backendless.UserService.findById(currentUserId, new DefaultCallback<BackendlessUser>(LoginActivity.this, "Logging in...") {
                            @Override
                            public void handleResponse(BackendlessUser currentUser) {
                                super.handleResponse(currentUser);
                                Backendless.UserService.setCurrentUser(currentUser);
                                ActivityHelper.start(LoginActivity.this, MainActivity.class);
                                finish();
                            }
                        });
                    }
                }

                super.handleResponse(isValidLogin);
            }
        });
    }

    loginWithFacebook();

    privacyPolicy.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(LoginActivity.this, PrivacyPolicy.class));
        }
    });

    registerDevice();
}

private void registerDevice() {
    Backendless.Messaging.registerDevice(AppConstant.GCM_SENDER_ID, AppConstant.MESSAGING_CHANNEL, registerCallback());
}

private DefaultCallback<Void> registerCallback() {
    return new DefaultCallback<Void>(this) {
        @Override
        public void handleResponse(Void response) {
            super.handleResponse(response);
        }

        @Override
        public void handleFault(BackendlessFault fault) {
            super.handleFault(fault);
        }
    };
}

private void loginWithFacebook() {
    loginFacebookBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onLoginWithFacebookButtonClicked();
        }
    });
}

private void onLoginWithFacebookButtonClicked() {

    Map<String, String> facebookFieldsMapping = new HashMap<>();
    facebookFieldsMapping.put("name", "name");
    facebookFieldsMapping.put("email", "email");

    List<String> facebookPermissions = new ArrayList<>();
    facebookPermissions.add("email");

    Backendless.UserService.loginWithFacebook(LoginActivity.this, null, facebookFieldsMapping, facebookPermissions, new SocialCallback<BackendlessUser>(LoginActivity.this) {
        @Override
        public void handleResponse(BackendlessUser response) {
            ActivityHelper.start(LoginActivity.this, MainActivity.class);
            finish();
        }

        @Override
        public void handleFault(BackendlessFault fault) {
            super.handleFault(fault);

            Toasty.info(LoginActivity.this, "Try again, please ..", Toast.LENGTH_LONG).show();
        }
    }, true);

}

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    finish();
    System.exit(0);
}

@Override
public void onClick(View view) {

}

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

}}

这是我的Facebook开发者帐户设置

facebook screenshot 1

facebook screenshot 2

facebook screenshot 3

我的代码是在Android Studio中成功运行,没有任何error.But当我运行我得到这个错误的应用程序。

Can't load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and sub-domains of your app to the App Domains field in your app settings.

error screenshot

我创建了我的LoginActivity.java再见,以此作为参考

https://backendless.com/documentation/users/android/index.html?users_facebook_login.htm

在网上搜索了很多但没有得到任何相关的解决方案任何人可以帮助??

android facebook android-studio facebook-login backendless
1个回答
0
投票

看起来您在Facebook设置中缺少App Domain(设置>基本>应用程序域)。

尝试添加为您的域名

api.backendless.com

如果这是行不通的尝试看看这个https://backendless.com/documentation/manage/mgmt_social_settings.htm

© www.soinside.com 2019 - 2024. All rights reserved.