Facebook graph api Can';在Facebook页面PHP SDK Graph API上标记用户

Facebook graph api Can';在Facebook页面PHP SDK Graph API上标记用户,facebook-graph-api,upload,tags,tagging,facebook-page,Facebook Graph Api,Upload,Tags,Tagging,Facebook Page,我正在尝试编写一个脚本,允许用户在我的网站上显示的照片上标记自己 一旦用户选择了要标记的人,照片将上载到我网站的Facebook粉丝页面,但Facebook将不允许我的应用程序使用当前登录的用户配置文件或其任何朋友的配置文件id标记照片 从添加标签开始,一切都很顺利。我得到一个错误: 致命错误:未捕获OAuthException:发生未知错误。在第1039行输入/home/public_html/include/api/facebook.3.0.1/base_facebook.php 以下是迄今

我正在尝试编写一个脚本,允许用户在我的网站上显示的照片上标记自己

一旦用户选择了要标记的人,照片将上载到我网站的Facebook粉丝页面,但Facebook将不允许我的应用程序使用当前登录的用户配置文件或其任何朋友的配置文件id标记照片

从添加标签开始,一切都很顺利。我得到一个错误: 致命错误:未捕获OAuthException:发生未知错误。在第1039行输入/home/public_html/include/api/facebook.3.0.1/base_facebook.php

以下是迄今为止的代码:

<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . "/include/api/facebook.3.0.1/facebook.php");

//Name of album you want to create
$album_name = "December 4, 2011";

// Create our application instance
// (replace this with your appId and secret).
$facebook = new Facebook(array(
        'appId' => 'APP_ID_INSERT_HERE',
        'secret' => 'APP_SECRET_INSERT_HERE',
    ));

$facebook->setFileUploadSupport(true);


// Get User ID
$user = $facebook->getUser();

// We may or may not have this data based 
// on whether the user is logged in.
// If we have a $user id here, it means we know 
// the user is logged into
// Facebook, but we don’t know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ($user) {
    try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}

if ($user) {

// Get access token for Facebook Page
$page_id = '170367249680012';
$page_info = $facebook->api("/$page_id?fields=access_token");

if (!empty($page_info['access_token'])) {

    $param = array(
        'method' => 'fql.query',
        'query' => 'SELECT object_id FROM album WHERE owner="FACEBOOK_PAGE_ID_INSERT_HERE" AND name="' . $album_name . '"'
    );
    //Check if album exists
    $album = $facebook->api($param);

    if (isset($album[0]['object_id'])) {
        // If album exists store id in the variable $album_uid
        $album_uid = $album[0]['object_id'];
    } else {

        // ELSE Create album
        $album_details = array(
            'access_token' => $page_info['access_token'],
            'message' => 'Album desc',
            'name' => $album_name
        );

        $create_album = $facebook->api('/me/albums', 'post', $album_details);

        //Get album ID of the album you've just created
        $album_uid = $create_album['id'];
    }

    //Photo Details

    $file = 'test.jpg'; //Example image file
    $photo_details['image'] = '@' . realpath($file);

    //Upload a photo to album

    $args = array(
        'access_token' => $page_info['access_token'],
        'image' => '@' . realpath($file),
        'message' => "test"
    );


    $upload_photo = $facebook->api('/' . $album_uid . '/photos', 'post', $args);

    //Get id of photo uploaded
    $photo_id = $upload_photo['id'];

    echo "<br/>" . $photo_id . "<br/>";


//ADD TAGS

    $argstag = array('to' => $user);
    $argstag['x'] = 40;
    $argstag['y'] = 40;
    $datatag = $facebook->api('/' . $photo_id . '/tags', 'post', $argstag);
    }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl(array('scope' => 'status_update,publish_stream,user_photos,offline_access,manage_pages'));
}

?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <title>php-sdk</title>
    <style>
      body {
        font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
      }
      h1 a {
        text-decoration: none;
        color: #3b5998;
      }
      h1 a:hover {
        text-decoration: underline;
      }
    </style>
  </head>
  <body>
    <h1>php-sdk</h1>

    <?php if ($user): ?>
      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <div>
        Login using OAuth 2.0 handled by the PHP SDK:
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>

  </body>
 </html>

php sdk
身体{
字体系列:“Lucida Grande”,Verdana,Arial,无衬线;
}
H1A{
文字装饰:无;
颜色:#3b5998;
}
H1A:悬停{
文字装饰:下划线;
}
php sdk
使用PHP SDK处理的OAuth 2.0登录:
有趣的是,如果我使用相同的脚本将图像上传到用户配置文件中,并标记它工作的图像

对于那些想要执行此操作的人,请删除下面的代码行,它会出现两次 “访问令牌”=>$page\u info[“访问令牌”]

改变 $upload_photo=$facebook->api(“/”.$album_uid./photos、$post'、$args)

到 $upload_photo=$facebook->api('/me/photos','POST',$args)

我到处搜索,看看是否有限制阻止API允许用户在粉丝页面上标记自己或朋友,但我什么也找不到。我唯一能找到的是:

因此,我不确定这是否是一个正式的错误,但我似乎有同样的问题,因为他们是。它在6个多月前作为一个bug提交,但似乎没有任何进展


有人知道这个问题的解决方法吗?我不想将图像上载到用户配置文件并标记它。

检查您的页面设置。有一个设置,允许球迷标记自己的照片。请确保其已启用,然后重试。在
管理权限
下查找
标记能力
设置