我无法使用权限上传到特定的Facebook相册。
我被设置为特定Facebook页面的管理员,但每当我尝试上传照片时,我似乎都无法访问它。
我得到的错误是:
致命错误:未捕获OAuthException:(#120)抛出无效的专辑ID
如果我使用Graph explorer进行探索,我可以看到这张专辑没有任何访问令牌。
我使用的网址是https://graph.facebook.com/albumId/photos
我试图上传的专辑是Facebook页面中的一张专辑,我在Facebook中创建了这张专辑。
我设置的权限是:
任何帮助表示感谢。
答案 0 :(得分:1)
首先,检查用户是否已登录:
function getLoginStatus() {
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
// the user is logged in and connected to your
// app, and response.authResponse supplies
// the user's ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
getPageAccess();
} else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
//but not connected to the app
logIn();
} else {
// the user isn't even logged in to Facebook.
logIn();
}
});
}
然后获取与用户关联的页面访问令牌:
function getPageAccess() {
FB.api('/PAGE_ID?fields=access_token', function (resp) {
var pageAccessToken = resp.access_token;
});
}
答案 1 :(得分:1)
这似乎是一个常见问题。如果您想冒充Facebook页面(即,作为页面本身进行上传,发布和共享),您必须首先获取该页面的访问令牌:
access token
。然后(使用PHP SDK):
$page = '432652662'; // Your page id
$album = '128949205'; // Your album id
$source = 'mypic.png';
$payload = array('source' => '@' . $source,
'access_token' => 'page access token');
// Upload photo for specific page and album
$sdk->api("/$page/$album/photos", 'POST', $payload);
答案 2 :(得分:0)
好的,我想我找到了解决方案。
如果你转到https://graph.facebook.com/me/accounts
每个帐户都有自己的access_token。将图像上传到Facebook页面时,您需要将该access_token作为参数传递。