nhaarman
nhaarman

Reputation: 100358

Android Facebook SDK: does not send access token?

I'm using the following snippet to request the friendslist of the authorized user:

System.out.println("AT: " + facebook.getAccessToken());
String response = facebook.request("me/friends?fields=first_name,last_name,id,gender");

The response I get:

{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500}}

I'm printing the accesstoken, this gives me a valid token. Also, getAccessExpires() returns a time in the future. When I request the url "me/friends" without any params, I get the expected (but with less data) friends list without errors.

How can I solve this?

Upvotes: 0

Views: 547

Answers (1)

Jesse Chen
Jesse Chen

Reputation: 4928

String response = facebook.request("me/friends?fields=first_name,last_name,id,gender");

That is the incorrect way to use facebook.request. I'm assuming you're not using the beta Android SDK so the correct way to do this is to do the following:

Facebook facebook = new Facebook(YOUR_APP_ID);
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle();
params.put("fields", "first_name, last_name, id, gender");
mAsyncRunner.request("me/friends", params, new RequestListener() {
    // get response here
    ....
});

Hope this helps.

Upvotes: 1

Related Questions