2

アルバム「WallPhotos」が存在する場合は写真を公開したいのですが、「WallPhotos」が存在しない場合はアルバムなしで画像を公開します(APPNAME PHOTOS)。

$album = $facebook->api('/'PAGEID'/albums'); 
foreach($album['data'] as $album){
 if($album['name'] == 'Wall Photos'){ 
  $album_post = $album['id']; 
 }
}
$risultato['pagina'][$pagina['id']] = $facebook->api('/'.$album_post.'/photos', 'POST',           array( 'access_token' => PAGETOKEN, 'source' => '@' . IMAGE, 'message' => TEXT ) );
if(!isset($album_post)){
 $risultato['pagina'][$pagina['id']] = $facebook->api('/'.$pagina['id'].'/photos',   'POST', array(
                'access_token'  => $pagina['token'],
                'source' => '@' . IMAGEPATH,
                'message' => TEXT
        )
    );
    }else{
   $risultato['pagina'][$pagina['id']] = $facebook->api('/'.$album_post.'/photos', 'POST', array(
                'access_token'  => $pagina['token'],
                'source' => '@' . realpath("../img_post/".$post['Immagine']),
                'message' => $post['Testo']
        )
    );
    }

しかし、私はそのエラーを受け取ります:1237行目のbase_facebook.phpに無効なアルバムIDがスローされました

4

1 に答える 1

1

idフィールドは、$albumオブジェクトの要素である必要があります。実際、それは最初のものです。

https://developers.facebook.com/docs/reference/api/album/

ちなみに、条件が満たされたときにforeachループから脱出するために、BREAKコマンドも使用する必要があります。

foreach($album['data'] as $album){
 if($album['name'] == 'Wall Photos'){ 

// To debug:

echo "<pre>";
print_r($album);
echo "</pre>";

// End debug

  $album_post = $album['id']; 
  break; 
 }
 }

これにより、次のようなものが生成されます。

Array
(
[id] => xxxxxxxxxxxxxxx
[from] => Array
    (
        [category] => Community
        [name] => xxxxxxxxxxxxx
        [id] => xxxxxxxxxxxxx
    )

[name] => xxxxxxxxxx
[description] => xxxxxxxxxxxxxxxx
[link] => http://www.facebook.com/album.php?xxxxxxxxxxxxxxxxxxxxxx
[cover_photo] => xxxxxxxxxxxxxx
[privacy] => everyone
[count] => 4
[type] => normal
[created_time] => 2012-12-11T14:56:06+0000
[updated_time] => 2012-12-11T14:56:22+0000
[can_upload] => 1
)

それは少なくともあなたに何が起こっているかについての手がかりを与えるはずです。

于 2012-12-11T21:26:20.703 に答える