新的 SDK 中没有请求publish_actions
-
20-12-2019 - |
题
我们正在使用
Permission[] permissions = new Permission[] {
Permission.PUBLIC_PROFILE,
Permission.EMAIL,
Permission.USER_FRIENDS,
Permission.PUBLISH_ACTION
};
SimpleFacebookConfiguration configuration = new SimpleFacebookConfiguration.Builder()
.setAppId(getResources().getString(R.string.app_id))
.setNamespace("ournamespace")
.setPermissions(permissions)
.build();
SimpleFacebook.setConfiguration(configuration);
在登录活动中:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
mSimpleFacebook.onActivityResult(this, requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onResume() {
super.onResume();
mSimpleFacebook = SimpleFacebook.getInstance(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ctx = this;
ImageView fbBtn = (ImageView) findViewById(R.id.authButton);
fbBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mSimpleFacebook.login(onLoginListener);
}
});
}
但是,生成的访问令牌不包含publish_actions权限...这里出了什么问题?
谢谢!
解决方案
在此库的最近更改之一中,添加了新选项 SimpleFacebookConfiguration
. 。它被称为 setAskForAllPermissionsAtOnce
. 。如果该值为 true,那么它会立即请求所有权限,如果用户在登录时接受它,您将在 accessToken 中拥有 PUBLISH 权限。
如果它是假的,那么它的行为方式就会不同。只有当用户执行第一次 PUBLISH 操作时,才会第一次显示具有权限的对话框。默认值为 false,因为这 符合 更好地遵守 Facebook 政策。但你可以改变它。在这里检查所有选项: https://github.com/sromku/android-simple-facebook#configuration-options
您还可以使用 SimpleFacebook.requestNewPermissions()
当您决定向用户请求权限时,再次请求权限或在应用程序流程中请求新权限的方法。
其他提示
如果需要,您的应用程序需要由 Facebook 人员审核 publish_actions
允许。
如果您只需要,则无需审核 public profile
, Email
, App friends
允许。
我想根据以下内容生成 AccessToken publish_actions
许可,您的应用程序需要经过审核。
请参阅 Facebook 开发者链接,
https://developers.facebook.com/docs/facebook-login/permissions/v2.0
不隶属于 StackOverflow