使用Graph API / PHP SDK在Facebook上标记照片

时间:2011-08-24 11:14:23

标签: php facebook facebook-graph-api

问题几乎在标题中,但更具体地说,我正在为一个客户进行Facebook竞赛,在接受规则和订阅等后,人们必须上传照片才能参与其中。 / p>

走了一条充满欺骗的漫长道路 (这是我尝试过的最终没有用的东西:

  • 上传到用户的相册然后标记页面:nope,无法标记页面
  • 上传到页面中的公共相册,如“粉丝照片”或墙照片?我找不到任何方法来做这件事,虽然这将是我的首选方式。)

所以,我最后有了一个想法:我会分两步完成。首先,用户将照片加载并上传到我的PHP服务器。然后,另一个具有该页面帐户权限的不同应用程序将控制它,以5分钟的间隔上传所有照片(意思是,您在5分钟后,您的照片已上传。)

到目前为止,这么好;我不喜欢这背后的逻辑,但这是我找到的唯一方法!所以,我做了基础,我能够在专用的应用专辑中发布带有标题的照片作为页面。 但!我无法在这些照片中标记任何人。也许你不能标记为页面,也许你不能在页面相册中标记,也许我没有所需的权限(我有stream_publish,user_photos,friends_photos,offline_access,如果我需要,我可以添加任何内容无论如何,这是一个私人应用程序)。哦,我正在尝试标记的用户是应用程序和页面的管理员(他喜欢该页面)。我不知道,但这让我发疯了。我讨厌官方文档,没有示例代码,你必须弄清楚大多数事情,经历反复试验或在网上搜索那些这样做并分享如何做事的人。如果您没有时间为客户完成项目而不会破坏预算,那就不好了。

无论如何,每当我尝试将某人标记为任何相册中的照片时,我都会遇到错误:

OAuthException: (#322) Invalid photo tag subject

这是我用于将照片从服务器上传到脸书的代码。

if ($user) {
  try {
    $page_info = $facebook->api("/$page_id?fields=access_token");
if( !empty($page_info['access_token']) ) {
   // First method, at the same time as upload. Upload works but no tags
   $args = array(
   'access_token'  => $page_info['access_token'],
   'source' => '@' . realpath($FILE_PATH),
   'message' => "test"
   'tags' => array(
     array(
      'tag_uid'=> "MY_USER_ID",
      'x'      => 0,
      'y'      => 0
     ))
   );
   $post = $facebook->api("/$page_id/photos","post",$args);
   $postID = $post['id'];

   // Second method I'm trying. No tags.
   $tag = $facebook->api("/$postID/tags/MY_USER_ID","post");
   print_r($tag);

}
  } catch (FacebookApiException $e) {
error_log($e);
$user = null;
  }
}

任何帮助将不胜感激。提前谢谢!

编辑::现在我使用代码中的第二部分进行了部分工作,但前提是我先从照片发布中删除了“access_token”参数。基本上,它只有在我上传到个人相册时才有效。但这就是我想要的东西。当我从页面上传到相册时,它说我要求标记请求,但在我标记的个人帐户中,我没有收到任何内容。 Baaaah。

重新编辑::经过多次尝试,我似乎无法将某人标记为页面或页面相册。我想我会尝试找一个替代方案。

0 个答案:

没有答案