我们正在使用
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权限... 这有什么不对?
谢谢!
答案 0 :(得分:2)
在此库的最近更改之一中,向SimpleFacebookConfiguration
添加了新选项。它被称为setAskForAllPermissionsAtOnce
。如果该值为true,则它立即请求所有权限,如果用户在登录时接受,则您将在accessToken中拥有PUBLISH权限。
如果它是假的,那么它的行为方式不同。只有当用户进行第一次PUBLISH操作时,才会首次显示具有权限的对话框。默认值为false,因为此符合更好地符合Facebook政策。但你可以改变它。点击此处的所有选项:https://github.com/sromku/android-simple-facebook#configuration-options
当您决定向用户询问时,您还可以使用SimpleFacebook.requestNewPermissions()
方法再次请求权限,或者在应用流程中间使用新方法。
答案 1 :(得分:0)
如果您需要publish_actions
权限,您的应用需要由FaceBook人员审核。
如果您只需要public profile
,Email
,App friends
权限,则无需进行审核。
我想根据publish_actions
权限生成AccessToken,您的应用需要进行审核。
请参阅facebook开发者链接
https://developers.facebook.com/docs/facebook-login/permissions/v2.0