如何在照片上传中指定ALBUM NAME + DESCRIPTION,而不是基于APP名称? (Facebook时间表)

时间:2012-06-04 12:17:20

标签: php facebook api facebook-graph-api

我在这里使用这个脚本作为我的Facebook App 它会在用户的Facebook个人资料中上传照片,并为该照片创建新的相册。

该脚本将“ [APP NAME] 照片”作为相册名称/标题(不带引号)返回。
- [APP NAME] 是我的Facebook APP的名称 -

基本上,我不想要专辑标题。我想在剧本上指定专辑标题 我想要的是:

  • ...能够从脚本中指定要创建的相册的名称/标题。
  • 如果可能,请同时指定相册说明。

这是脚本 -

    $root_url = "http://www.WEBSITE.COM/";
    $facebook = new Facebook($config);
    $user_id = $facebook->getUser();

      // Get image from URL
      $img = $_GET['i'];
      // Change location depending on which type of cover
      if($get_set != 1) {
      $photo = './PATH/'.$img.''; // Path to the photo on the local filesystem
      } else {
      $photo = './PATH/'.$img.'';
      }
      $message = 'THIS IS THE PHOTO CAPTION';




        if($user_id) {

          // We have a user ID, so probably a logged in user.
          // If not, we'll get an exception, which we handle below.
          try {

            // Upload to a user's profile. The photo will be in the
            // first album in the profile. You can also upload to
            // a specific album by using /ALBUM_ID as the path 
            $ret_obj = $facebook->api('/me/photos', 'POST', array(
                                             'source' => '@' . $photo,
                                             'message' => $message,
                                             )
                                          );
          //  echo '<pre>Photo ID: ' . $ret_obj['id'] . '</pre>';
          print "<script>window.location = '".$root_url."index.php?cover=uploaded'</script>";

          } catch(FacebookApiException $e) {
            // If the user is logged out, you can have a 
            // user ID even though the access token is invalid.
            // In this case, we'll get an exception, so we'll
            // just ask the user to login again here.
            $login_url = $facebook->getLoginUrl( array(
                           'scope' => 'photo_upload'
                           )); 
            echo '<script> window.location = "' . $login_url . '"; </script>';
            error_log($e->getType());
            error_log($e->getMessage());
          }   

          echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
        } else {

          // No user, print a link for the user to login
          // To upload a photo to a user's wall, we need photo_upload  permission
          // We'll use the current URL as the redirect_uri, so we don't
          // need to specify it here.
          $login_url = $facebook->getLoginUrl( array( 'scope' => 'photo_upload') );
            echo '<script> window.location = "' . $login_url . '"; </script>';
            //echo 'Please <a href="' . $login_url . '">login</a> to continue.';

        }

看到这个 here ,我相信这是可能的。

   $album_name = 'YOUR_ALBUM_NAME';
   $album_description = 'YOUR_ALBUM_DESCRIPTION';

我只是不知道如何在那里工作......
期待解决方案。谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

正如Photo object

的文档中所述
  

您可以通过向照片发出HTTP POST请求来上传照片   内容和对Graph API的可选描述   连接:

     
      
  • https://graph.facebook.com/USER_ID/photos - 照片将发布到为您的应用创建的相册中。我们自动创建一个   适用于您应用的相册(如果尚不存在)。所有照片上传   这种方式将被添加到同一张专辑中。

  •   
  • https://graph.facebook.com/ALBUM_ID/photos - 照片将发布到特定的现有相册,由相应的   ALBUM_ID。普通相册的大小限制为200张照片。默认   应用相册的大小限制为1000张照片。

  •   

您目前正在使用第一个选项,使用第二个选项要求您拥有首先需要创建的相册ID:

  

您可以通过向其发出HTTP POST请求来为用户创建相册   具有publish_stream权限的PROFILE_ID /专辑   以下参数
  (Albums connection of the User object

问题在于,当用户需要再次上传到相册时,您必须保存此相册ID以供用户使用。