如何在Backendless中集成Facebook登录?



这是我的登录活动.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) {
}}

这是我的脸书开发者帐户设置

脸书截图 1

脸书截图 2

脸书截图 3

我的代码在安卓工作室中成功运行,没有任何错误。但是当我运行应用程序时,我收到此错误。

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.

错误截图

我已经创建了我的登录活动.java再见,以此作为参考

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

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

您的Facebook设置(基本>>应用程序域设置(中似乎缺少应用程序域。

尝试添加为域

api.backendless.com

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

最新更新