如何检查用户是否喜欢一个页面?

3

我想检查用户是否喜欢我的页面。在这里,我初始化了请求用户喜欢的列表...

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.)”。

1
你为什么要向 /me/likes 发送 POST 请求? - Igy
1
因为我不知道如何做... - ABCD
1个回答

6
您需要使用GET请求以获得点赞,而不是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://dev59.com/x1fUa4cB1Zd3GeqPGECU#6372236。 如果有返回信息,则表示用户已喜欢它。如果有帮助,请告诉我,谢谢!

编辑:实际上,您可以使用图形API进行单个查询。如下所示:

https://graph.facebook.com/me/likes/<OBJECT_ID>

只需将您的对象ID放入请求中:

[self.facebook requestWithGraphPath:@"me/likes/<OBJECT_ID>" andParams:nil andHttpMethod:@"GET" andDelegate:self];

并且你应该做得很好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接