【问题标题】:Facebook api does not upload imageFacebook api不上传图片
【发布时间】:2014-05-17 08:58:42
【问题描述】:

我的问题已经在这里讨论过了 couldn't open file "" error in Facebook PHP API

我的 php 脚本是

//variables we are going to post to facebook
$fbPermissions = 'publish_stream,user_photos';  //Required facebook permissions
$PicLocation = 'fb_cover_images/cover7.jpg';
$msg_body = array(
    'message' => 'I liked this pic from '. $homeurl .
     ' it is perfect for my cover photo.',
     'url' => "http://my_site.com/$PicLocation"
);

if ($fbuser){ //user is logged in to facebook, post our image
  try {
     $uploadPhoto = $facebook->api('/me/photos', 'post', $msg_body );
  } 
  catch (FacebookApiException $e) {
    echo $e->getMessage(); //output any error
  }
}
else{
  $loginUrl = $facebook->getLoginUrl(
  array('scope'=>$fbPermissions,'return_url'=>$return_url));
  header('Location: ' . $loginUrl);
}

如果我设置'url' => "http://my_site.com/$PicLocation" 然后得到

(#200) 权限错误

如果我设置'url' => "@http://my_site.com/$PicLocation" 然后得到

无法打开文件“http://my_site.com/fb_cover_images/cover7.jpg

消息如果我点击"http://my_site.com/fb_cover_images/cover7.jpg",我可以查看图像并且文件夹+图像的权限设置为777。

请指导我做错了什么...... 我已经搜索但失败了。

我也试过【PHP + Facebook:如何将照片上传到墙上?但同样的垃圾信息(#200) Permissions error

还有Upload Photo To Album with Facebook's Graph API 我不知道 FB API 到底发生了什么。

【问题讨论】:

  • 只是一些提示:“publish_actions”是您需要的唯一权限。并且您不需要该文件夹的 777 权限。毕竟你不想写东西,而只是阅读图像并将其放在 facebook 上。还有一件事:消息参数需要 100% 用户生成。只是说。
  • 更新了$fbPermissions = 'publish_stream,user_photos,publish_actions'; //Required facebook permissions 但同样的问题:(
  • 再次声明,publish_actions 是您需要的唯一权限。您确实需要查看有关权限的 facebook 文档。不要“仅仅因为它们有效”而使用权限,删除所有不必要的权限。
  • 当然这可能解决不了手头的问题,但需要注意的是非常重要的一点。
  • 我也试过PHP + Facebook: how to upload photo on the wall?,但同样的垃圾信息(#200) Permissions error

标签: php facebook-php-sdk


【解决方案1】:

尝试在设置 Facebook 后将以下行添加到代码顶部:

$facebook->setFileUploadSupport( true );

然后,将您的 $msg_body 更改为以下内容:

$msg_body = array(
  'name' => 'I liked this pic from '. $homeurl . ' it is perfect for my cover photo.',
  'source' => "http://my_site.com/$PicLocation"
);

name 是图像的标题,source 是文件的 URL。如果您要引用本地文件,则只需在源前面加上 @ 前缀即可。

【讨论】:

    猜你喜欢
    • 2014-06-02
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多