我是Facebook应用程序开发的新手,所以请耐心等待.
我被要求创建一个Facebook页面,其中包含一个应用程序,允许用户将照片上传到Page的一个专辑中.
我设法创建页面,让我们称之为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);
}
}
但是,当提交“上传”按钮时,我在MyPage的Myrame的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将照片上传到页面的唯一方法是将其作为页面进行.为此,您需要首先作为页面进行身份验证.要做到这一点,你必须:
>使用manage_pages权限对拥有该页面的用户进行身份验证.
>请求页面
/我/帐户?=的access_token YOUR_ACCESS_TOKEN
>找到相应页面的access_token.
>使用该access_token上传照片.
如果您需要USERS将照片上传到页面,您可以与拥有该页面的用户一起获得一个长期存在的令牌并将其存储为使用该令牌而不是用户令牌来上传照片.上传的照片不会以用户身份上传,但会显示在页面上传.