php - facebook 为页面创建应用程序以将照片上传到页面的相册

标签 php facebook facebook-graph-api

我是 Facebook 应用程序开发的新手,所以请多多包涵。

有人要求我创建一个 Facebook 页面,并使用一个应用程序让用户将照片上传到页面的一个相册中。

我已经成功创建了页面,我们将其命名为 MyPage。我还创建了一个应用程序 MyApp,并将该应用程序添加到主页的个人资料中。现在,当您查看 MyPage 个人资料时,在左侧(选项卡),您已经找到了 MyApp

MyApp 指向我的托管帐户上的一个 php 页面。它有一个带有文件字段的表单:

<form action="<?=$PHP_SELF;?>" enctype="multipart/form-data" method="post">
    <input name="MAX_FILE_SIZE" type="hidden" value="10000000" />
    <input id="fileSelect" name="fileSelect" type="file" />
    <input name="submit" type="submit" value="Upload" />
</form>

和下面的代码来处理上传的文件并假设放入MyPage的相册:

if(count($_FILES)){
    $name = ereg_replace(' ', '_', basename($_FILES['fileSelect']['name'])); 
    $uploadFile = "uploads/" . $name; 
    if (move_uploaded_file($_FILES['fileSelect']['tmp_name'], $uploadFile)) { 
    $facebook->setFileUploadSupport(true);

    $args = array('message' => 'Photo Caption');
    $args['image'] = '@' . realpath($uploadFile);

    $data = $facebook->api('/THE_ALBUM_ID/photos', 'post', $args);

    //get rid of the original on the main server 
    unlink($uploadFile);
    }
}

但是,当提交“上传”按钮时,我在 MyPageMyApp 的 iframe 中收到此错误:

Fatal error: Uncaught OAuthException: (#120) Invalid album id thrown in /COMPLETE_PATH/facebook-php-sdk/src/base_facebook.php on line 1033

即使专辑 ID 确实正确,并且在我使用 Graph API Explorer 或 graph.facebook.com/THE_ALBUM_ID 时显示

顺便说一句,我把它放在脚本的顶部:

require 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'THE_APP_ID',
  'secret' => 'THE_APP_SECRET',
));

我错过了什么?任何帮助将不胜感激。

最佳答案

我发现通过 Facebook API 将照片上传到页面的唯一方法是作为页面进行。为此,您需要首先验证为页面。为此,您必须:

  1. 使用 manage_pages 权限向拥有该页面的用户进行身份验证。
  2. 请求页面

    /me/accounts?access_token=YOUR_ACCESS_TOKEN

  3. 找到对应页面的access_token

  4. 使用该 access_token 上传照片。

如果您需要 USERS 将照片上传到页面,您可以获得拥有该页面的用户的长期 token 并存储它以使用该 token 而不是用户 token 来上传照片。上传的照片虽然不会显示为用户上传,但会显示为由页面上传。

关于php - facebook 为页面创建应用程序以将照片上传到页面的相册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140097/

相关文章:

php - 如何每天从另一台服务器自动加载数据

javascript - jquery地理定位和 map 高亮

ios - 无法从 Facebook IOS 请求中调用 UIView

iphone - Facebook SDK 更改为在弹出 View 中登录

php - 获取可变大小的表单到 javascript 和 PHP (AJAX)

javascript - 我如何检查数据库中已有的名字并给出错误消息?

javascript - 网站上的 Facebook 群组消息

php - Facebook php SDK/SQL - 获取用户的第一个状态 EVER

javascript - Facebook JS API 上的评论权限错误,即使我有权限

php - 将 Facebook 公共(public)帖子从页面获取到 php 数组