将读取和发布权限添加到ParseFacebookUtils [英] Add read and publish permission together to ParseFacebookUtils

查看:234
本文介绍了将读取和发布权限添加到ParseFacebookUtils的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以上是我的代码,但是我无法一起找出使用情况,总是给出错误

Above is my code but i cant find out together usage, always gives error


无法通过发布或管理权限(publish_actions)要求读取授权

Cannot pass a publish or manage permission (publish_actions) to a request for read authorization

这是我的权限列表

private Collection<String> permissions = new ArrayList<>();
permissions.add("public_profile");
permissions.add("email");
permissions.add("user_birthday");
permissions.add("publish_actions");

这是登录请求

ParseFacebookUtils.logInWithReadPermissionsInBackground(activity, permissions, new LogInCallback() {
@Override
public void done(ParseUser parseUser, ParseException parseException) {

       if (parseUser == null) {

       } else {

       }
    }
});

我如何一起使用?

推荐答案

长时间以后,这是解决办法。您必须在Facebook上进行两次登录。一次是发布,其他一个是读权限。如果您需要公开的个人资料数据,只需发布​​权限即可,但在我的情况下,我需要生日,电子邮件等。所以代码在下面;

After long hours, this is solution. You must behave twice login to facebook. Once is publish and other one is read permissions. If you need public profile data , just publish permission is enough but in my case i need birthday, email, etc.. So code is below;

这些是我的权限列表;

These are my permissions lists;

Collection<String> readPermissions = new ArrayList<>();
readPermissions.add("public_profile");
readPermissions.add("email");
readPermissions.add("user_birthday");
Collection<String> publishPermissions = new ArrayList<>();
publishPermissions.add("publish_actions");

首先,我应该使用readpermission登录

Firstly, I should login with readpermission

ParseFacebookUtils.logInWithReadPermissionsInBackground(activity, readPermissions, new LogInCallback() {
        @Override
        public void done(ParseUser parseUser, ParseException parseException) {

            if (parseUser == null) {
                listener.onFailure(new UserCancelledFacebookLogin());
            } else {
                getPublishPermissions(parseUser);
            }
        }
    });

此后,我的getPublishPermissions方法; FacebookRequestListener是我自己的监听器,不要在乎/删除它。

After this, here my "getPublishPermissions" method; FacebookRequestListener is my own listener , don't care/mind delete it.

public void getPublishPermissions(final ParseUser parseUser) {
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

            GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject object, GraphResponse response) {
                    // User succesfully login with all permissions
                    // After this with these json and ParseUser , you can save your user to Parse
                }
            });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,first_name,last_name,name,email,gender,birthday");
            request.setParameters(parameters);
            request.executeAsync();
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException facebookException) {

        }
    });

    LoginManager.getInstance().logInWithPublishPermissions(activity, publishPermissions);
}

这些都是folks =)

that's all folks =)

快乐编码给每个人

这篇关于将读取和发布权限添加到ParseFacebookUtils的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆