SilentByte
SilentByte

Reputation: 1220

How to retrieve authData from a ParseUser?

I'm trying to retrieve the authData field from a ParseUser. With Parse 1.9.1, I used to do it like so:

ParseUser user = ParseUser.getCurrentUser();
HashMap authDataMap = (HashMap)user.get("authData");
HashMap facebookMap = (HashMap)authDataMap.get("facebook");
String facebookId = (String)facebookMap.get("id");

And this worked fine.

Something changed though. I don't know if it's because I updated to Parse 1.9.2 or if something changed on the Parse server side, but authData is no longer accessible. The line user.get("authData") returns null. Even if I re-fetch the user.

Ultimately I want to retrieve the Facebook id from the ParseUser, preferably without reaching out to Facebook. Is this no longer possible?

Upvotes: 2

Views: 1442

Answers (2)

Coen B
Coen B

Reputation: 715

Have you taken a look at Facebook Users section in the Parse.com documentation. I think authData is for internal communication, not meant to be called (any more).

Upvotes: 0

NehaK
NehaK

Reputation: 2737

If you are using ParseFacebookUtils to perform login Facebook user then after successfully login from in parse try to get GraphUser using following to fetch Facebook user data-

                    Request.newMeRequest(ParseFacebookUtils.getSession(),
                            new Request.GraphUserCallback() {
                                @Override
                                public void onCompleted(
                                        final GraphUser fbUser,
                                        Response response) {

                                    try {

                                        if (fbUser != null
                                                && parseUser != null
                                                && fbUser.getName()
                                                        .length() > 0) {

                                          // Facebook user data
                                          String fbId = fbUser.getId();

                                        } else {
                                          // Facebook user not logged in
                                        }
                                    } catch (Exception e) {
                                        e.printStackTrace();
                                        stopLoading();

                                    }
                                }
                            }).executeAsync();

Upvotes: 1

Related Questions