現時点では、サーバーに画像をダウンロードして、次のように投稿する必要があります。
$photo = array(
'message' => 'Status',
'source' => '@/full/path/of/the/image.png'
);
$response = $fb->api('/'.$album.'/photos', 'POST', $photo);
バックエンドでcurlを使用してこのリクエストを投稿していますが、うまく機能しています。ローカル コピーをダウンロードする代わりに、リモート イメージを直接投稿することは可能でしょうか?
私はこのようなことをしようとしました:
$photo = array(
'message' => 'Status',
'source' => file_get_contents('http://www.domain.com/image.png')
);
$response = $fb->api('/'.$album.'/photos', 'POST', $photo);
しかし、グラフ API から例外が発生しました:「(#324) アップロード ファイルが必要です」
これは、データの配列を送信するときに自動的に設定される multipart/data ヘッダーを送信していないときに発生しているようです ($data
配列です)。
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
したがって、リモート画像を投稿できるかどうかは疑わしいです。どう思いますか?