如何在Facebook上的照片上标记朋友照片通过Graph API上传

时间:2012-02-23 12:44:04

标签: php facebook-graph-api

<?php

require_once 'facebook.php';
require_once 'config.php';

error_reporting(0);

if (isset($_GET['code'])){
  header("Location: http://apps.facebook.com/your_perfect_couple/");
  exit;
}

$fb = new Facebook(array(
                'appId' => $appid,
                'secret' => $appsecret,
                'cookie' => true,
                                'fileUpload' => true
));

$me = null;

$user = $fb->getUser();

if($user) {
    try {

            $me = $fb->api('/me'); 
    } catch(FacebookApiException $e) {
            error_log($e);
    }
}

$permsneeded='publish_stream,user_photos,photo_upload';

if ($me){}
else {
    $loginUrl = $fb->getLoginUrl(array(
                'scope' => $permsneeded,
                ));

    echo "
        <script type='text/javascript'>
        window.top.location.href = '$loginUrl';
        </script>
    ";

    exit;
}

if(isset($_GET['signed_request'])) {
    $fb_args="signed_request=". $_REQUEST
    ['signed_request']; }

//we start 

 $appname=$me[name];
                    $appid=$me[id];

echo "<h1>Whom Can You Make a Perfect Couple With?</h1></br></br>";
$appname_user = $appname;

try {
$friends = $fb->api('/me/friends?fields=picture,name,id');
}catch(FacebookApiException $e) {
            error_log($e);
    }
$num_friends = count($friends[data]);
$selected_friend= mt_rand(1,$num_friends);

$f_name= $friends[data][$selected_friend][name];
$f_id = $friends[data][$selected_friend][id];
$appname_frnd=$f_name;



             $base = imagecreatefromjpeg('base.jpg');
             $white = ImageColorAllocate($base, 100,130,255); 


                    $font = 'ARIAL.TTF';
                    $font2='Cacophony Loud.ttf';
                    imagettftext($base, 50, 0, 30, 90, $white, $font2, $appname_user);
                    imagettftext($base, 50, 0, 80, 260, $white, $font2, $appname_frnd);

                    // Output and free memory
                   // header('Content-type: image/jpg');


                   $image="final/final_".$appid.".jpg";


                    imagejpeg($base,$image);
                    echo "<img src='$image' />";



//We end 
//upload image


  $message = 'Wohh, I cant believe , I Can make a Perfect Couple With  '.$appname_frnd.'  :P http://apps.facebook.com/your_perfect_couple/ ';


      try {


        $ret_obj = $fb->api('/me/photos', 'POST', array(
                                         'source' => '@' . $image,
                                         'message' => $message,
                                         )
                                      );


      } catch(FacebookApiException $e) {

        $login_url = $fb->getLoginUrl( array(
                       'scope' => 'photo_upload'
                       )); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   


?>

我正在制作facebook应用程序,上传形成的图像.. 一切都很酷.. 但我没有得到任何标记兰顿人的东西,我在这张图片上附上了这个名字......

告诉我如何在照片上标记某人:)

请告诉我如何在此代码中执行此操作:)

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

是的,我很确定这不起作用,你只是一种“无效的内容”或类似的错误;除非图表API有更新,否则无法通过API添加照片代码。您唯一能做的就是上传图片,添加“标签”按钮并将用户重定向到Facebook上的图片,他们可以手动为其添加标签,例如:http://o2-academy.vccphub.com/snapbooth.php/snapbooth/image/2012-01-21-032244-o2ac1-1740164044-8972579