首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将facebook登录集成到Backendless中?

如何将facebook登录集成到Backendless中?
EN

Stack Overflow用户
提问于 2018-05-07 23:50:18
回答 1查看 150关注 0票数 0

这是我的LoginActivity.java

代码语言:javascript
运行
复制
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

我的代码在没有任何error.But的情况下在android studio中成功运行,当我运行应用程序时,我得到了这个错误。

代码语言:javascript
运行
复制
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

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

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 20:33:32

看起来您的facebook设置中缺少应用程序域(设置>基本>应用程序域)。

尝试添加为您的域名

代码语言:javascript
运行
复制
api.backendless.com

如果这不起作用,请尝试查看此https://backendless.com/documentation/manage/mgmt_social_settings.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50218066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档