私はこれと戦うのに何時間も費やしました。この問題について見つけたものはすべて読みましたが、まだ答えはありません。助けてください.
FacebookアプリとGraph APIを使用して、Facebookページの壁に画像を投稿しようとしています:
<?php
$facebook = new Facebook(array(
'appId' => $this->settings['app_id'],
'secret' => $this->settings['app_secret'],
'fileUpload' => true,
));
$facebook->destroySession();
$filename = dirname(__FILE__) . '/upset.jpg';
$args = array(
'message' => 'Test',
'image' => '@' . realpath($filename),
'access_token' => $this->settings['user_access_token'],
);
try {
$result = $facebook->api($this->settings['fanpage_id'] . '/photos',
'post', $args);
var_dump($result);
}
catch(Exception $e) {
echo $e->getType() . "\n" . $e->getMessage() . "\n";
}
このコードは本当にメッセージをページ ウォールに投稿し ('/photos' を '/feed' に置き換えた場合)、実際に USER ウォールに写真を投稿します ($this->settings['fanpage_id'] を $ に変更した場合)。 user_id) ですが、ページの壁には写真はありません。
ただし、画像はアップロードされます。$result にはアップロードされた画像の ID が含まれており、Facebook で見ることができますが、ページのアルバムではなくユーザーのアルバムで見ることができます。
PS /accounts を呼び出してページ アクセス トークンを取得しようとしましたが、結果は同じです。PPSユーザーアクセストークンには、manage_pages、photo_upload、およびその他の権限があります(実際にはoffline_accessを除くすべて)