Facebook Graph Api作用域被codenameone覆盖
我试图使用FacebookConnect在用户的facebook墙上发布,但是方法createOauth2()通过其自身的权限覆盖了作用域 编辑 在android设备上,永远不会调用Facebook Graph Api作用域被codenameone覆盖,codenameone,Codenameone,我试图使用FacebookConnect在用户的facebook墙上发布,但是方法createOauth2()通过其自身的权限覆盖了作用域 编辑 在android设备上,永远不会调用askPublishPermissions的Logincall back。 此外,当登录应用程序时,我会要求获得好友列表和电子邮件的权限,而我从未要求过。在FacebookConnect的源代码中,createOuth()方法正在范围中添加它们,但我不需要这些权限 解决方案: 这些是我为有同样问题的人所遵循的步骤。
askPublishPermissions
的Logincall back。
此外,当登录应用程序时,我会要求获得好友列表和电子邮件的权限,而我从未要求过。在FacebookConnect的源代码中,createOuth()
方法正在范围中添加它们,但我不需要这些权限
解决方案:
这些是我为有同样问题的人所遵循的步骤。
首先,我发现模拟器在请求许可时有问题。因此,我创建了自己的Outh登录,请求许可
对于android构建
android.facebook\u permissions
键。这是必须的一步。此处仅包含读取权限,而不包括发布\u操作
权限或其他写入权限。如果您不需要除写入权限以外的任何权限,请添加facebook的默认权限public\u profile
FacebookConenct.askPublishPermissions
作为publish\u操作
权限李>
doLogin()
,然后出于某种原因askPublishPermission
在我的情况下什么也没做。因此,我使用了askPublishPermission
,而没有调用doLogin()
,它会自动调用登录页面你是如何申请权限的 你注意到你需要打电话写信了吗 与web应用程序不同,本机应用程序需要请求写入权限
您是否按照说明设置了构建提示
android.facebook\u权限?您是如何请求权限的
你注意到你需要打电话写信了吗
与web应用程序不同,本机应用程序需要请求写入权限
您是否按照说明设置了构建提示android.facebook\u权限
?我在回答中添加了一些细节。android.facebook\u权限和其他一些东西解决了我将在问题中更新的问题。但我仍然认为emulator存在问题,因为登录只会覆盖我的范围。请检查facebookConnect.createOuth()方法。模拟器使用与设备(本机登录)完全不同的系统(web登录)。我在答案中添加了一些详细信息。android.facebook\u权限和其他一些东西解决了我将在问题中更新的问题。但我仍然认为emulator存在问题,因为登录只会覆盖我的范围。请检查facebookConnect.createOuth()方法。模拟器使用与设备(本机登录)完全不同的系统(web登录)
if (fb.isNativeLoginSupported()) {
Dialog.show("native", "Yes", "Ok", null);
if (!fb.hasPublishPermissions()) {
Dialog.show("permission", " no publish permission", "ok", null);
fb.askPublishPermissions(new LoginCallback() {
@Override
public void loginSuccessful() {
Dialog.show("permission", "accessed: " + fb.hasPublishPermissions(), "Ok", null);
System.out.println("permission: " + fb.hasPublishPermissions());
token = fb.getAccessToken().getToken();
PhotoShare share = new PhotoShare();
share.sendPhoto(token, id);
}
@Override
public void loginFailed(String errorMessage) {
System.out.println("failed permission: " + errorMessage);
Dialog.show("permission error", errorMessage, "Ok", null);
}
});
} else {
Dialog.show("permission", "publish permission", "ok", null);
PhotoShare share = new PhotoShare();
share.sendPhoto(token, id);
}
} else {
Dialog.show("permission", "No native support", "Ok", null);
fb.setScope("publish_actions");
fb.setCallback(new LoginCallback() {
@Override
public void loginSuccessful() {
token = fb.getAccessToken().getToken();
PhotoShare share = new PhotoShare ();
share.sendPhoto(token, id);
}
});
fb.doLogin();
}