【问题标题】:Face book album creation is not working wellFacebook 相册创建效果不佳
【发布时间】:2012-05-25 14:52:37
【问题描述】:

我正在尝试将图像上传到 Facebook 相册。现在图像已上传到具有 facebook 应用名称的相册。我想将图片上传到名为“Flowers”的相册。

我正在使用以下代码。

<?php
    require_once 'fbpic/library/facebook.php';

    $app_id = "xxxx";
    $app_secret = "xxxxx";
    $facebook = new Facebook(array(
     'appId' => $app_id,
     'secret' => $app_secret,
     'cookie' => true
    ));
    $fbcheck= $facebook->getUser();

    if(is_null($fbcheck) or !$fbcheck or $fbcheck==0)
    {
     header("Location:{$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos,photo_upload'))}");

    }



        $facebook->setFileUploadSupport("http://" . $_SERVER['SERVER_NAME']);
        // add a status message
        $photo = $facebook->api('/me/photos', 'POST', 
            array(
                'source' => '@' .realpath("ContactUs.jpg") ,
                'message' => 'It is a programming test'
            )
        );

?>

【问题讨论】:

  • 请更彻底地解释您的问题是什么 - 您需要包含您从代码中看到的任何错误以及您尝试运行它时发生的确切情况的描述。
  • 现在图像被上传到名为“MyFacebookapplicationName”的相册中。我想将图像上传到名为“Flower”的相册。提前谢谢..

标签: facebook image facebook-graph-api upload


【解决方案1】:

Facebook 博客文章中的场景 2 应该会有所帮助:https://developers.facebook.com/blog/post/498/

【讨论】:

    【解决方案2】:

    检查相册是否退出。

    在 graphurl/{userId}/albums 上做一下。 (您也可以使用 FQL 来完成相同的任务)

    遍历列表以查看同名专辑是否已存在。

    如果已经退出 使用 URL graphurl/{albumId}/photos 发布图片

    如果相册没有退出,则创建相册。 在 $facebookGraphUrl.'/me/albums 上发布一个带有参数名称和描述的帖子。

    然后使用相册 ID 将图片发布到此相册。

    祝你好运。

    【讨论】:

      【解决方案3】:

      参考this

      您可以通过使用 publish_stream 权限和以下参数向 ALBUM_ID/photos 发出 HTTP POST 请求来将照片添加到相册。

          Parameter   Description         Type                    Required 
          source      Photo content       multipart/form-data     yes
          message     Photo description   string                  no 
      

      所以,而不是

       $photo = $facebook->api('/me/photos', 'POST', 
                  array(
                      'source' => '@' .realpath("ContactUs.jpg") ,
                      'message' => 'It is a programming test'
                  )
              );
      

      你应该这样做,

       $photo = $facebook->api('/<your_album_id>/photos', 'POST', 
                  array(
                      'source' => '@' .realpath("ContactUs.jpg") ,
                      'message' => 'It is a programming test'
                  )
              );
      

      p.s.
      当您不指定album_id 时,facebook 会使用您的应用程序名称为您创建一个相册,如果它已经创建,所有没有album_id 的照片都会进入该相册

      【讨论】: