5

我试过了:

$args = array(
  'access_token' => $access_token,
  'id' => $uid
);

$url = "https://graph.facebook.com/{$idPhoto}/tags";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$data = curl_exec($ch);

它给了我:

{"error":{"type":"QueryParseException","message":"Unknown path components: \/tags"}}

这似乎不可能,因为它不在 Facebook 文档中:

http://developers.facebook.com/docs/api#publishing

有人可以确认我无法在最近上传的照片中标记用户吗?

4

3 回答 3

28

使用 PHP Facebook Graph API 一步上传图片和标记多人:

$args = array(
  'message' => 'Message',
  'image'   => '@' . realpath($path_to_image),
  'tags'    => array(
     array(
      'tag_uid'=> $friend1_uid,
      'x'      => $x1,
      'y'      => $y1,
     ),
     array(
      'tag_uid' => $friend2_uid,
      'x'       => $x2,
      'y'       => $y2,
     ),/*...*/
   ),
);

$data = $facebook->api('/me/photos', 'post', $args);

$facebook 是初始化 Facebook PHP SDK 对象的地方。$data['id'] 是上传照片的 id。

注意事项: 1. 初始化 Facebook 对象时必须设置 fileUpload 选项:

$facebook = new Facebook(array(
  /*..*/
  'fileUpload'  => true,
));
  1. 必须授予publish_stream 权限
于 2011-03-29T17:16:23.277 回答
2

目前没有使用 Facebook Graph API 设置标签的机制。

您可以将photos.addTag与旧的 REST API 一起使用,您应该可以在此处下载该 API:http: //pearhub.org/get/facebook-0.1.0.tgz。如果有人有更好的链接,我将不胜感激。

查看来自 Facebook 开发人员http://developers.facebook.com/blog/post/371的这篇文章,新 API 似乎永远不会支持设置标签“让用户进行标记”。这对于想要集成标签的应用程序(比如我的)来说是不幸的。

于 2010-07-09T13:43:29.677 回答
1

将网址更改为

$url = "https://graph.facebook.com/{$idPhoto}/photos";

tags不是兼容的方法!用于photo检索指定的数据

看一眼!

http://developers.facebook.com/docs/reference/api/photo用于在照片中标记用户。

于 2010-06-10T19:45:33.787 回答