将读取和发布权限添加到ParseFacebookUtils [英] Add read and publish permission together to 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屋!