php - 如何使用 Facebook Graph API 在照片中标记用户?

标签 php facebook facebook-graph-api

我试过:

$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

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

最佳答案

使用 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 permission必须被授予;

关于php - 如何使用 Facebook Graph API 在照片中标记用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3017861/

相关文章:

java - Facebook API 和访问 token

android - 使用 Android 在 Facebook 墙上发帖

php - 脚本在复制数据库表时卡住 - Mysql - PHP

php - Twilio 批量短信

ios - 任何与 Facebook iOS SDK 解除好友关系的方法

android - 添加 "share"按钮以在社交网络上分享应用

php - 在 Update SQL 中执行 OPERATION(加、减、乘、除)

php - apache 不能与 osx 10.10 php Homebrew 软件一起使用

ios - 找不到 FBLoginViewDelegate 的协议(protocol)声明

android - 从 facebook 墙到 android 应用程序的新闻提要