【问题标题】:File upload to app page album with Graph API使用 Graph API 将文件上传到应用页面相册
【发布时间】:2012-01-30 19:26:43
【问题描述】:

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

未捕获的 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 返回值为空

【问题讨论】:

    标签: php facebook photo


    【解决方案1】:

    理论上,这是你需要做的:

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

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

    此外,请注意,如果您使用的是 Facebook PHP SDK,默认的访问令牌将是当前活动会话(用户)的访问令牌。因此,您需要手动将其更改为页面访问令牌或发出 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);
    

    upload photo to page timeline Facebook SDK

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多