我看到您正在询问 HTTP POST URL 的字段(参数)。 HTTP POST 请求(通常)不包含您在经典 GET 请求中可能习惯使用的参数,例如在某些 URL 中的脚本名称之后的 ?param1=value¶m2=value。
POST 请求在消息体中向服务器发送数据,查看:http://en.wikipedia.org/wiki/POST_(HTTP)
既然你知道了,那就是你可以做的:
您可以通过经典的 GET 请求获取点赞数,该 URL 可以粘贴到任何网络浏览器并获得响应,例如:
https://graph.facebook.com/260895413924000_605362559477282/likes?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
此网址将为您提供所有喜欢该帖子/照片的人的回复。
如果您知道帖子/照片是公开的(https://www.facebook.com/photo.php?fbid=605362542810617&set=a.260905783922963.82517.260895413924000),您可以省略 ?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。
如果不是,您需要生成一个实际的 access_token(也用于发布您需要生成一个)并进行测试,您可以在这里进行:https://developers.facebook.com/tools/explorer/
现在,如果您想真正喜欢这张照片,您不能简单地形成一个可以在浏览器中复制/粘贴并触发点赞操作的 URL。这是因为浏览器不执行 POST 请求,您需要通过 Ivo Patrick Tudor Weiss 建议的代码来执行此操作,或者最终出于测试目的,您可以使用控制台中的 curl 实用程序执行此操作,如下所示:
curl --data "access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" https://graph.facebook.com/260895413924005362559477282/likes
您可以使用 HTTP DELETE 撤消类似操作...像这样:
curl --data "access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -X DELETE https://graph.facebook.com/260895413924000_605362559477282/likes
- 更新,关于 OP 在 cmets 中提出的其他问题:
当然可以使用 ASIHTTPRequest 发出 GET、POST 和 DELETE HTTP 请求。但是,我不建议在您的情况下使用该库。一个原因是 ASIHTTPRequest 的作者已经停止在这个库上工作,另一个原因是 Facebook SDK for iOS 是一个更好的选择,因为有了它,你已经处理了许多其他事情。
这里说的是例子:
首先根据您的需要输入这三种组合中的一种:
获取所有喜欢特定帖子的人:
(为简单起见,我在这里省略了 access_token,但如果需要,您可以将其附加到 URL)
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/260895413924000_605362559477282/likes"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
自己喜欢具体的帖子:
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/260895413924000_605362559477282/likes"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:[@"access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" dataUsingEncoding:NSUTF8StringEncoding]];
//[request setRequestMethod:@"POST"]; // <--- NOT NEEDED since it is the default if you previously called appendPostData
不同于帖子:
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/260895413924000_605362559477282/likes"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:[@"access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" dataUsingEncoding:NSUTF8StringEncoding]];
[request buildPostBody];
[request setRequestMethod:@"DELETE"];
然后执行实际的请求:
[request startSynchronous];
NSString *response = [request responseString];
NSLog(@"Response: %@", response);
请记住,同步请求可以用于测试,但如果您在实际应用程序的主线程上使用它,您的 GUI 将无响应。在此处了解如何执行异步请求:http://allseeing-i.com/ASIHTTPRequest/How-to-use
至于您的 iOS 示例。把所有的代码都写在这里就太过分了。您已经从 Ivo Patrick Tudor Weiss 那里得到了完全正确的答案。唯一缺少的是您需要在 Facebook 上进行身份验证并建立 FBSession 的样板代码。
我建议您在此处阅读此材料:https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/
下载包含示例代码的最新 SDK,并按照 Facebook 网页上的教程进行操作。然后,当您配置好基础知识后,回到您从 Ivo 那里得到的答案。