2012-07-19 102 views
0

我尝试在Facebook API中使用标记功能,但它不起作用。无法用Facebook API标记照片

这是许可码:

$facebook->getLoginUrl(
    array(
     'canvas' => 1, 
     'fbconnect' => 0, 
     'req_perms' => 'user_photos, friends_photos, publish_stream, 
         offline_access, user_likes, user_photo_video_tags', 
     'next' => $appCanvasPage.'index.php', 
     'cancel_url' => $appCanvasPage 
    ) 
); 

这是我尝试的第一个方法:

$photoId = $userid."_".$upload_photo['id']; 
$post_url = "https://graph.facebook.com/" 
      .$$photoId . "/tags/" . $friendid 
      . "?access_token=". $access_token 
      . "&x=" . $x_coordinate 
      . "&y=" . $y_coordinate 
      . "&method=POST"; 
file_get_contents($post_url); 

这将返回一个错误:

"message": "Unsupported post request.", 
"type": "GraphMethodException", 
"code": 100 

第二种方法我曾尝试:

$fd = 'XXXX'; 
$tag = array(
    'tag_uid' => $fd, 
    'x' => '10.0', 
    'y' => '10.0' 
); 
$tags = array($tag0); 
$facebook->api(
    array(
     'method' => 'photos.addTag', 
     'pid' => $photoId, 
     'tags' => json_encode($tags) 
    ) 
); 

此代码也不标记照片。

回答

1

ok..i发现solution..can使用此代码做标记

$tag = array(
      'tag_uid' => $fb->getUser(), 
      'x' => 0, 
      'y' => 0 
     ); 
     $tags[] = $tag; 
     $image = array(
      'access_token' => $session['access_token'], 
      'tags' => $tags, 
     ); 
     $fb->setFileUploadSupport(true); 
     $image['image'] = '@'.realpath($image_path); 
     $fb->api('/me/photos', 'POST', $image); 
0

photos.addTag是旧的传统REST API。你应该调用是这样的:

$fd = 'XXXX'; 
$tag0 = array('to' => $fd, 'x' => '10.0', 'y' => '10.0'); 
$tags = array($tag0); 
$facebook->api('/' . $photoId . '/tags', 'POST', $tags); 
+0

我曾尝试it..it犯规work..anything我需要改变。 。 – user1536721 2012-07-19 06:14:09

+0

嗯没有?你得到什么样的错误? – mask8 2012-07-19 06:18:53

+0

没有错误出现..但图片没有标记和代码停止那里..没有页脚后代码... – user1536721 2012-07-19 06:20:40

0
$post_url = "https://graph.facebook.com/" 
     .$$photoId . "/tags/" . $friendid 

你真的应该做一些调试而不是“想知道”为什么事情会失败......

你写$$ PHOTOID那里,有两个$迹象。这就是PHP中所谓的“变量变量”,并且会尝试访问变量,其中名称是$ photoId的内容 - 但我会怀疑你做了而不是在脚本中设置了一个名为“$ someuserid_somepictureid”的变量。

因此,从给了一个错误分开(如果你有你的error_reporting设置的东西懂事,就像我已经告诉过你),如果你刚刚提出的$调试输出POST_URL你可以很容易地发现这有什么问题吧...

+0

这不是一个错误导致响应“消息”:“不支持的发布请求。”,这是后期的方法是不正确的..代码只是一个错字。 我已经宣布图片ID为userid_photoid – user1536721 2012-07-20 16:06:04

+0

当然这会导致错误,因为您尝试连接的API地址将类似于“https:// graph.facebook.com // tags/1234567890”,并且_of course_您会得到一个_“不受支持的发布请求“_留言,因为这只是一个无意义的地址... – CBroe 2012-07-20 17:51:11

+0

nvm ..我刚刚找到解决方案.. :) – user1536721 2012-07-21 19:06:10