0

写真をアルバムに投稿しようとすると(ページとして、「/ page_id?fields = access_token」から取得したページアクセストークンが使用されました)、新しく作成されたオブジェクトのIDを取得します。ただし、このIDは、グラフエクスプローラーでチェックしようとすると、単に「false」を返します。また、写真は選択したアルバム(またはその他の場所)に表示されていないようです。

コードは非常に単純です。

$facebook->setFileUploadSupport (true);
$page_at = $facebook->api ('/'.option::get_value ('page_id').'?fields=access_token');
$page_at = $page_at['access_token'];
$args = array ();
$args['message'] = $this->text;
$args['image'] = '@' . realpath ($filename);
$args['access_token'] = $page_at;
$photo = $facebook->api ('/'. option::get_value ('album_id') . '/photos', 'post', $args);

option :: get_value()は、(正しい、トリプルチェックした)アルバムIDを返すだけです。また、画像は.pngであり、エラーメッセージはまったく表示されません。Facebookが返すのは、次のIDだけです。

array(1){["id"] => string(15) "188538791279108"}

これはFacebookのバグですか、それとも明らかな何かが欠けていますか?

4

1 に答える 1

1

'image'パラメータの代わりに、'source'を試してください。試してみたところ、うまくいきました(ページが所有するアルバムへの投稿):

$args['source'] = '@'.realpath($filename);

また、アップロードされたファイルのファイルサイズがゼロ以外であることを確認してください。

error_log('file size: '.$_FILES["file"]["size"]);

また、デバッガーmanage_pages,publish_streamを使用して、アクセストークンにアクセス許可があることを再確認します。

于 2012-08-24T21:54:21.937 に答える