繁体   English   中英

使用Graph API将文件上传到应用页面相册

[英]File upload to app page album with Graph API

我已经遍历了所有相关主题,但找不到以下答案:是否可以仅将应用程序照片存储在其自己的页面相册中? 请注意,每个用户都应将照片上传到同一相册。 我已经看到,应用程序可以在用户/页面个人资料中创建相册,但是将所有内容存储在一个位置会更好。
我收到以下错误:

未捕获的OAuthException:(#120)无效的相册ID(base_facebook.php行1038)

码:

public function setPageToken($userId = 'MY_USER_ID',
        $pageId = 'APP_PAGE_ID')
{
    // get logged in all page
    $args = array
    (
        'fileds'    => 'id,access_token',
        'scope'     => 'manage_pages,publish_stream'
    );
    $accounts = $this->api('/'.$userId.'/accounts','get',$args);
    // fetch the desired page access token
    foreach($accounts['data'] as $k => $v)
    {
        if($v['id'] == $pageId)
        {
            $token = $v['access_token'];
            break;
        }   
    }
    return $token;
}

笔记:

  1. 我的应用程序ID不等于我的应用程序页面ID
  2. $ accounts返回值为空

从理论上讲,这是您需要做的:

  1. 获取具有上传照片权限的页面访问令牌。
  2. 硬编码或以其他方式存储后者的access token
  3. 下次用户使用您的HTML表单上传照片时,您将需要使用后者的访问令牌将照片上传到页面相册。

请注意,从理论上讲,这不需要授权上传照片的用户。 但是,如果问题是您是否可以代表用户将照片上传到第三方页面,则不能。

此外,请注意,如果您使用Facebook PHP SDK,则默认访问令牌将是当前活动会话(用户)的令牌 因此,您将需要手动将其更改为Page访问令牌或发出cURL请求。

$ch = curl_init();
$url = "https://graph.facebook.com/" . $album_id . "/photos?access_token=" . $access_token;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$retdata = curl_exec($ch);
echo($retdata);

将照片上传到页面时间线Facebook SDK

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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