1

私のウェブサイトには写真のキャッシュがあり、これらの写真を Facebook のファン ページに 1 日に 4 ~ 5 回アップロードする必要があります。私のコードはアルバムを作成し、写真をアルバムにアップロードしますが、これらの写真はタイムラインに表示されません。

私の質問は、タイムラインやウォールに表示されるように、ファン ページに写真をアップロードするにはどうすればよいかということです。使用言語はPHP

どんな助けでも大歓迎です。

ありがとう

編集1:コードは次のとおりです:

<?php   
require 'facebook.php';
$facebook = new Facebook(array(
    'appId'  => "AAAAAAAAAA",
    'secret' => "BBBBBBBBBB",
));

$fanpage_token = "ZZZZZZZZZZZZZZZZZZZZZZZZZZ";

$facebook->setFileUploadSupport(true);

//Create an album
$album_details = array(
        'message'=> 'test album',
        'name'=> 'album'
);
$create_album = $facebook->api('/PAGE_ID/albums', 'post', $album_details);

$album_uid = $create_album['id'];

echo $album_uid;

 $img = '7newx.jpg';
  $args = array(
   'message' => 'Random message',
   'image' => '@' . $img,
   'aid' => $album_uid,
   'no_story' => 1,
   'access_token' => $fanpage_token
  );

  $photo = $facebook->api($album_uid . '/photos', 'post', $args);

?>
4

1 に答える 1

5

わかりました。no_story を削除しようとして、タイムラインに影響しないことがわかったと思います。それは私も見つけたものです。

あなたがしなければならないことは、別の投稿を作成することですが、今回はリンクとして. 最初の投稿から返された配列 $photo を使用する必要があります。調べると、['id'] という単一の要素があり、アップロードした写真の ID が含まれていることがわかります。

これを、Facebook が表示するために使用するリンクに変換する必要があります。これは簡単です。

if (isset($photo['id']))
{
$message = "My latest photo";
$link = "https://www.facebook.com/photo.php?fbid=".$photo['id'];
$attachment = array
(
'access_token'=>$fanPageAccessToken,
'type' => 'photo',
'message' => $message,
'link' => $link 
);

$result = $facebook->api($fanPageId.'/links/','post',$attachment);
}

$fanPageAccessToken と $fanPageId が何であるかを理解できると思います。

そうすれば、欲しいものは手に入るはずです。

于 2013-02-14T22:35:00.167 に答える