How to check if a user likes a page?
facebook, iphone, objective-c
Solution
You need a get request to for likes not a POST so your problem I think is here:
[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"POST" andDelegate:self];
this needs to be:
[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"GET" andDelegate:self];
This will give you the full list of likes. If you want to find a single like, however, it looks like you'll have to do an FQL query to:
https://api.facebook.com/method/fql.query?query=SELECT+user_id%2Cobject_id%2C+post_id+FROM+like+WHERE+user_id%3Dme%28%29%20and%20object_id=<OBJECT_ID_TO_CHECK>&access_token=<YOUR_ACCESS_TOKEN>
Execute this through the iOS SDK like this mentions: https://stackoverflow.com/a/6372236 and if you get anything back the user has liked it. Let me know if this helps. Thanks!
Edit: You actually can do a single query with the graph api. It's like this:
https://graph.facebook.com/me/likes/<OBJECT_ID>
So just plop your object id into the request:
[self.facebook requestWithGraphPath:@"me/likes/<OBJECT_ID>" andParams:nil andHttpMethod:@"GET" andDelegate:self];
and you should be good.
Problem
I want to check if the user has liked my page or not. Here, I initialise the request for a list of likes the user has... ``` NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { [self.facebook setAccessToken:[defaults objectForKey:@"FBAccessTokenKey"]]; [self.facebook setExpirationDate:[defaults objectForKey:@"FBExpirationDateKey"]]; } if (![self.facebook isSessionValid]) { [self.facebook authorize:[[NSArray alloc] initWithObjects:@"publish_stream, user_likes", nil]]; } else { [self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"POST" andDelegate:self]; } ``` The code executes to requestWithGraphPath. However it never works, I get "The operation couldn’t be completed. (facebookErrDomain error 10000.)".