简体   繁体   中英

How to Tag a Friend on a Photo on Facebook Photo Upload Via 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());
      }   


?>

I am making facebook application which uploads the image formed .. everything is cool .. but i am not getting anything to tag the randon person, i am attaching the name on that image ...

just tell me how to tag a person on a photo :)

please tell me how to do this in this code :)

yeah, I'm pretty sure that doesn't work, you just a sort of "invalid content" or similar error; Unless there has been an update to graph API is it NOT possible to add photo tags via the API. The only thing you can do is upload the image, add a "tag" button and redirect the user to the image on Facebook where they can tag it manually, such as here: http://o2-academy.vccphub.com/snapbooth.php/snapbooth/image/2012-01-21-032244-o2ac1-1740164044-8972579

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM