Facebook graph api Facebook Graph API 2017-图像上载到时间线照片,而不是给定的相册(id)

Facebook graph api Facebook Graph API 2017-图像上载到时间线照片,而不是给定的相册(id),facebook-graph-api,facebook-php-sdk,Facebook Graph Api,Facebook Php Sdk,我的用户可以决定是否要上传到他们页面的主时间线或页面相册中 除了我的图像被上传到时间线照片(默认FB相册)而不是所选照片之外,所有操作都成功 如果选择了时间线,$timelinealbum是“我”,如果选择了其中一个相册,$timelinealbum是“%album\u id%” 因此,发布url是“/me/photos”表示时间线,是“/album\u id%/photos”表示相册。已调试,工作正常。照片仍将转到时间线照片 (上传成功,无错误消息。) 有什么想法吗 提前谢谢 以下是多个图像(

我的用户可以决定是否要上传到他们页面的主时间线或页面相册中

除了我的图像被上传到时间线照片(默认FB相册)而不是所选照片之外,所有操作都成功

如果选择了时间线,$timelinealbum是“我”,如果选择了其中一个相册,$timelinealbum是“%album\u id%”

因此,发布url是“/me/photos”表示时间线,是“/album\u id%/photos”表示相册。已调试,工作正常。照片仍将转到时间线照片

(上传成功,无错误消息。)

有什么想法吗

提前谢谢

以下是多个图像(静默模式)的上载代码:


更多更新:child_attachments方法没有将图像上载到FB。用侧滚图片生成的帖子,但是图片只是从我的页面链接的。同时,相册是空的:

我只是放弃了。如果上传了多张图片,我会抓取第一张图片的FB ID,用它在页面上发布一篇公开帖子(FB会创建一个相册链接),然后在帖子底部添加一条关于上传图片数量的注释


在联系FB开发者并从他们那里得到一些提示后,我发现从一月份开始有一些变化

“published”字段已经消失,现在有一个“no_story”字段,如果“published”是“false”,那么该字段必须是“true”

(如果我没记错的话,“no_story”的名字有点好笑,因为从一月份开始,故事也从v2.8中消失了。再也找不到这个警报。更有趣的是:在“/page/feed”文档中仍然有“published”,而“album_id/photos”使用的是“no_story”字段。#wehatelogic)

但是,更有趣的是,现在可以在一个查询中发布多个图像了!一篇文章至少可以附上2张,最多可以附上5张(或10张,见文档),Facebook上最多可以显示5张

为此,必须使用“child_attachments”数组。(不幸的是,如果您只想上传一张图像,您必须使用完全不同的方法。#wehateyou)


更多信息位于

您确定相册ID正确并且应用程序页面访问令牌有权向其发布吗?我确定。我可以发布到时间轴上,这样访问令牌就可以了,并且相册id已经调试过,再次检查过,也可以了。制作一张imgur相册:你需要检查
album_id?fields=can_upload
谢谢你的提示,不过看起来还行:“can_upload”:true,“id”:“226**********120”文件是一个bug developers.facebook.com/bug
foreach ($tarrvegl as $t) {
    $turl = wp_get_attachment_url($t);
    $linkDataInner = [
        'message' => $message,
        'source' => $fb->fileToUpload($turl),
        'published' => false,
        'access_token' => $page_access_token
    ];
    try {
        $response = $fb->post('/'.$timelinealbum.'/photos', $linkDataInner);
        $graphNode = $response->getGraphNode();
        $resparr[] = $graphNode['id'];
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }
}