使用Facebook api获取好友ID以标记上传的照片

时间:2014-07-29 14:59:43

标签: php facebook facebook-graph-api facebook-sdk-4.0

我有以下代码

$taggable = (new FacebookRequest(
$session,
'GET',
'/me/friends'
))->execute()->getGraphObject()->asArray();

echo '<pre>' . print_r( $taggable, 1) . '</pre>';

我正在尝试获取同时使用该应用的朋友列表的ID,以便用户可以与这些朋友标记照片。现在,代码打印的朋友也在使用应用程序,他们的名字和ID。我想让朋友的id转到“标签”的参数,但getProperty('id')不起作用并给我一个错误。我是facebook api的新手,所以我不熟悉语法。

如何将朋友的id转入:

 'tags' => '[{\'tag_uid\': \'testing\'}]',

由于

1 个答案:

答案 0 :(得分:2)

一旦你进行了API调用,你就会得到一个朋友列表,如:

{
  "data": [
    {
      "name": "aaa", 
      "id": "111"
    }, 
    {
      "name": "bbb", 
      "id": "222"
    }, 
    {
      "name": "ccc", 
      "id": "333"
    },
    ...
  ]
}

假设您要标记第一个人,您可以这样获取ID:

$id = $taggable['data'][0]->id;

这会将$id设为111

然后,您可以调用API来标记Photo,如下所示:

// set tags object (user_id, and position)
$tags = array( array( 'tag_uid' => $id, 'x' => 0, 'y' => 0 ) );

// call api, with json_encoded $tags
$tag = (new FacebookRequest( $session, 'POST', '/{photo_id}/tags', array( 'tags' => json_encode( $tags ) ) ))->execute()->getGraphObject()->asArray();

// output result
echo '<pre>' . print_r( $tag, 1 ) . '</pre>';