我想检查用户是否喜欢我的网页。在这里,我初始化了一个用户喜欢的列表的请求......
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];
}
代码执行requestWithGraphPath。然而,它永远不会工作,我得到“操作无法完成。(facebookErrDomain错误10000。)”。
答案 0 :(得分:6)
你需要一个获取请求,而不是一个POST,所以我认为你的问题在这里:
[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"POST" andDelegate:self];
这需要:
[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"GET" andDelegate:self];
这将为您提供完整的喜欢列表。但是,如果你想找到一个类似的东西,看起来你必须做一个FQL查询:
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>
通过iOS SDK执行此操作,如下所述:https://stackoverflow.com/a/6372236 如果你得到任何回报,用户喜欢它。如果这有帮助,请告诉我。谢谢!
编辑:您实际上可以使用图表api执行单个查询。就像这样:
https://graph.facebook.com/me/likes/<OBJECT_ID>
所以只需将你的对象id放入请求:
[self.facebook requestWithGraphPath:@"me/likes/<OBJECT_ID>" andParams:nil andHttpMethod:@"GET" andDelegate:self];
你应该好。