現在、facebook API を介して画像をアップロードする際に問題が発生しています。API を介してエラーは返されません。現時点では、渡すファイル パスに問題がある可能性が高いと考えています。
ユーザーがアプリを使用した後、画像はサーバーに保存され、Facebookに投稿したいと思います。
私のコードは以下の通りです:
実行後、API からの応答はありませんが、たとえば意図的に oauth_token を変更すると、エラーが発生します (したがって、データが確実に投稿されていることがわかります)。
args 配列も出力しているので、投稿内容を正確に確認できます。
これが応答です。
@ 記号の後の URL に移動すると、@C:\Domains を削除して www に置き換えても壊れます。ユーザーがファイル名を知っている場合に実際に移動できるURLを渡そうとしました
例: https://www.example.co.uk/competition/fb/photos/collagetest.jpg
^ これは有効なリンクですが、画像を渡しても実際にはアップロードされません。
どんな助けでも大歓迎です!
Array ( [message] => Photo from ********[image] => @C:\Domains\******.co.uk\wwwroot\v2\competition\fb\photos\collagetest.jpg )
//upload photo
$file= './photos/'.basename('collagetest.jpg');
$args = array(
'message' => 'Photo from friendbooth',
);
$args['image'] = '@' . realpath($file);
$ch = curl_init();
$url = 'https://graph.facebook.com/photos?access_token='.$_SESSION['oauth_token'];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);
print_r($args);
//returns the photo id
print_r(json_decode($data,true));
?>
<img src="collagetest.jpg" />
<?