2011-07-19 74 views
1

我有一个Facebook照片标记应用程序,几个月前曾经工作,但不再。用户对应用进行身份验证,并在Facebook账户上上传图片并给他们的朋友加标签。该应用程序上传图片,但由于某种原因停止标记。Facebook的照片标记应用程序没有标记人

require_once('facebook.php'); 

$_SESSION['init'] = true; $current_date=date('m/d/Y'); $facebook = 
new Facebook(array(
    'appId' => FACEBOOK_APP_ID, 
    'secret' => FACEBOOK_SECRET, 
    'cookie' => true, 
)); 

$facebook->setFileUploadSupport(true); 
$session = $facebook->getSession(); $tokenorig = 
$facebook->getAccessToken(); 

$friends = 
    file_get_contents("https://graph.facebook.com/me/friends?access_token=" 
    . $tokenorig); 

$friends = json_decode($friends, true); 
$friends = $friends['data']; 

foreach($friends as $friend) { 
    $uids[] = $friend['id']; 
} 

function makeTagArray($userId) { 
    $x=1; $y=1; 

    foreach($userId as $id) { 
    $tags[] = array('tag_uid'=>$id, 'x'=>$x,'y'=>$y); 
    $x+=1; 
    $y+=1; 
    } 

    $tags = json_encode($tags); 
    return $tags; 
} 


$arguments = array(
    'message' => 'hi guys ', 
    'tags' => makeTagArray($uids), 
    'source' => '@' .realpath('pic2.jpg'), 
); 

$alb = "13378"; 
uploadPhoto(
    $facebook, 
    $alb, 
    $arguments, 
    $tokenorig); 

function uploadPhoto($facebook,$albId,$arguments,$tokenorig) { 
    //https://graph.facebook.com/me/photos 
    try { 
    $fbUpload = 
     $facebook->api('/'.$albId.'/photos?access_token='.$tokenorig,'post', 
     $arguments); 

    return $fbUpload; 
    } catch(FacebookApiException $e) { 
    echo "eror"; 
    echo $e; 
    // var_dump($e); 

    return false; 
    } 
} 

//////////结束

+0

Judith,你可以请下次使用代码“{}”按钮的代码,并确保代码格式正确,以便于阅读。谢谢! – squinlan

回答

1

首先关闭所有, 您需要用户授权您的应用程序上传照片和标签代表他们与 你需要publish_stream和user_photos权限标记用户的朋友