2

我们正在使用

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 权限......这里有什么问题?

谢谢!

4

2 回答 2

2

在此库的最近更改之一中,为SimpleFacebookConfiguration. 它被称为setAskForAllPermissionsAtOnce。如果该值为 true,那么它会立即要求所有权限,如果用户在登录时接受它,您将在 accessToken 中拥有 PUBLISH 权限。

如果它是假的,那么它会以不同的方式表现。只有当用户进行他的第一个 PUBLISH 操作时,才会第一次显示具有权限的对话框。默认值为 false,因为这更符合Facebook 政策。但是你可以改变它。在此处检查所有选项:https ://github.com/sromku/android-simple-facebook#configuration-options

当您决定向用户询问是件好事时,您还可以使用SimpleFacebook.requestNewPermissions()方法再次请求权限或在应用流程中间请求新权限。

于 2014-06-03T06:38:03.543 回答
0

publish_actions如果您需要许可,您的应用需要经过 Facebook 人员的审核。

public profile如果您只需要, Email,App friends权限,则不需要审核。

而且我猜要根据publish_actions权限生成 AccessToken,您的应用程序需要进行审核。

查看 facebook 开发者链接,

https://developers.facebook.com/docs/facebook-login/permissions/v2.0

于 2014-06-03T06:40:12.633 回答