问题几乎在标题中,但更具体地说,我正在为一个客户进行Facebook竞赛,在接受规则和订阅等后,人们必须上传照片才能参与其中。 / p>
走了一条充满欺骗的漫长道路 (这是我尝试过的最终没有用的东西:
所以,我最后有了一个想法:我会分两步完成。首先,用户将照片加载并上传到我的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。
重新编辑::经过多次尝试,我似乎无法将某人标记为页面或页面相册。我想我会尝试找一个替代方案。