【问题标题】:Post a public photo using the Facebook Graph API使用 Facebook Graph API 发布公开照片
【发布时间】:2014-05-01 20:43:25
【问题描述】:

我正在使用 Facebook Graph API 将照片发布到用户的相册。

照片的发布工作并在请求的相册中创建,但我无法将照片公开。

相册设置为公开,相册中的其他照片可供注销的用户使用。当用户授予应用程序权限时,他们还选择将应用程序发布的任何内容公开。任何想法为什么会发生这种情况?

代码如下:

$ret_obj = $this->facebook->api('123123123/photos', 'POST', array(
    'source' => '@' . $photo,
    'message' => $message,
));

这些是我要求的权限:

$url = $this->facebook->getLoginUrl( array(
    'scope' => 'photo_upload, user_photos, publish_stream'
));

【问题讨论】:

    标签: php facebook facebook-graph-api


    【解决方案1】:

    根据Reference docs(不包含此信息,但我已经添加),您需要在 API 调用中提供一个额外的privacy 参数,我相信它看起来像这样(我的 PHP 不是强):

    $privacy = array(
      'value'=> 'EVERYONE',
    )
    
    $ret_obj = $this->facebook->api('123123123/photos', 'POST', array(
                                     'source' => '@' . $photo,
                                     'message' => $message,
                                     'privacy' => $privacy
                                     )
                                  );
    

    【讨论】:

    • 哦,您应该考虑升级到我们昨天推出的较新的 PHP SDK (4.0.0):developers.facebook.com/docs/php/howto/uploadphoto/4.0.0
    • 感谢您的回复。不幸的是,添加这个不起作用。它仍然不适用于已注销的用户。根据文档,如果未提供,则默认为用户在登录对话框中做出的选择,在这种情况下是公开的。
    • 新创建的照片上的隐私指示是什么意思?
    • 它说是公开的。这是照片网址:link
    • 嗯,很奇怪,我刚刚用url的上传方式测试了一下,在退出浏览器的情况下可以成功看到照片。我推荐您file a bug,以便我们的支持团队之一可以更深入地调查此问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多