Facebook照片标记应用程序没有标记人

时间:2011-07-19 17:03:13

标签: 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;
  } 
}

//////////端

1 个答案:

答案 0 :(得分:1)

首先, 您需要用户授权您的应用程序代表他们上传照片和标记 您需要publish_stream和user_photos权限来标记用户的朋友