应用程序未显示来自Facebook的publish_action权限对话框



我正在使用此代码...

我使用 logInWithPublishPermissions 登录...

    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();
    shareDialog = new ShareDialog(this);
    java.util.List<String> permissionNeeds = Arrays.asList("publish_actions");
    //this loginManager helps you eliminate adding a LoginButton to your UI
//  LoginManager = LoginManager.getInstance();
    LoginManager.getInstance().logInWithPublishPermissions(
            FacebookShareActivity.this,
            Arrays.asList("publish_actions"));
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            sharePhotoToFacebook();
        }
        @Override
        public void onCancel() {
            System.out.println("onCancel");
        }
        @Override
        public void onError(FacebookException exception) {
            System.out.println("onError");
        }
    });

分享照片到脸书

private void sharePhotoToFacebook(){

    SharePhoto photo = new SharePhoto.Builder()
            .setBitmap(bitmap)
            .setCaption("Caption")
            .build();
    SharePhotoContent content = new SharePhotoContent.Builder()
            .addPhoto(photo)
            .build();
    ShareApi.share(content,shareCallback);
//  Toast.makeText(getApplicationContext(),"Snapshot shared On Facebook",Toast.LENGTH_SHORT).show();

            //shareDialog.registerCallback(callbackManager, FacebookCallback<Sharer.Result>(), REQUEST_CODE);

}

但是我希望应用程序请求权限,它不显示请求发布权限的对话框。

尝试以下方式登录Facebook:

@Bind(R.id.login_button_fb)
 LoginButton login_button_fb;
.
.
.
.
 login_button_fb.setReadPermissions(Arrays.asList(
                        "public_profile", "email", "user_birthday", "public_actions"));
                login_button_fb.setFragment(LoginFragment.this);
                login_button_fb.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        addToMainQueue(TCRequestGenerator.loginWithFacebook(loginResult.getAccessToken().getToken()));
                    }
                    @Override
                    public void onCancel() {
                        LoginManager.getInstance().logOut();
                    }
                    @Override
                    public void onError(FacebookException error) {
                        showAlert(error.getMessage());
                        LoginManager.getInstance().logOut();
                    }
                });

最新更新