我们正在使用

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top