OK、私はここのロープの最後です。私は私のウェブサイトのtmpフォルダに置く限り、jpgファイルを読んでいることを知っている次のコードを持っています。しかし、私はまだ迷惑なエラーを取得しています:FBに写真を投稿する必要がありますアップロードファイルにエラーがあります
{"error":{"message":"(#324) Requires upload file","type":"OAuthException"}}
私は何が欠けていますか?それは単純なものでなければならないが、私がそれを理解することができれば、私はうんざりするだろう。どんな助けも大歓迎です!!!私はあなたのスクリプトを確認
<html>
<head>
<title>Photo Upload</title>
</head>
<body>
<?php
$app_id = "APP ID HERE";
$app_secret = "APP SECRET HERE";
$post_login_url = "LOGIN IN URL HERE";
$album_name = "My Silly Album";
$album_description = "Blah Blah Photos";
$photo_source = "tmp/Lighthouse.jpg";
$photo_message = 'Here is the lighthouse';
$code = $_REQUEST["code"];
echo "code ==>" . $code . '<br/><br/>';
//Obtain the access_token with publish_stream permission
if(empty($code)){
login($app_id, $post_login_url);
}
else {
$access_token = getAccessToken($app_id, $post_login_url, $app_secret, $code);
echo "access_token ==>" . $access_token . '<br/><br/>';
$album_id = createAlbum($access_token, $album_name, $album_description);
echo "album_id ==>" . $album_id . '<br/><br/>';
uploadPhoto($access_token, $album_id, $photo_source, $photo_message);
}
function login($app_id, $post_login_url){
echo '***** login' . '<br/><br/>';
$dialog_url= "http://www.facebook.com/dialog/oauth?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode($post_login_url)
. "&scope=publish_stream,user_photos";
echo("<script>top.location.href='" . $dialog_url .
"'</script>");
}
function getAccessToken($app_id, $post_login_url, $app_secret, $code){
echo '***** getAccessToken' . '<br/><br/>';
$token_url= "https://graph.facebook.com/oauth/"
. "access_token?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode($post_login_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
return($params['access_token']);
}
function createAlbum($access_token, $album_name, $album_description){
// Create a new album
echo '***** createAlbum' . '<br/><br/>';
$graph_url = "https://graph.facebook.com/me/albums?"
. "access_token=". $access_token;
$postdata = http_build_query(
array(
'name' => $album_name,
'message' => $album_description
)
);
$opts = array('http' =>
array(
'method'=> 'POST',
'header'=> 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = json_decode(file_get_contents($graph_url, false, $context));
// Return the new album ID
return($result->id);
}
function uploadPhoto($access_token, $album_id, $photo_source, $photo_message){
// Upload the photo
echo '***** uploadPhoto' . '<br/><br/>';
echo 'photo_source ==> ' . $photo_source . '<br/>photo_message ==> ' . $photo_message . '<br/>';
$fh = fopen("$photo_source","r") or die("can't open $photo_source: $php_errormsg");;
while (!feof ($fh))
{
$buffer = fgets($fh, 4096);
$file[] = $buffer;
}
fclose ($fh);
$args = array('message' => $photo_message,
'source' => $file
);
$ch = curl_init();
$url = 'https://graph.facebook.com/'.$album_id.'/photos?access_token='.$access_token;
echo "url ==>" . $url . '<br/><br/>';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);
echo "data ==>" . $data . "<br>";
return($data);
}
?>
</body>
</html>
これは(22decからあなたの質問に順番にほぼ同じ)を使用すると、2日前に投稿さあなたの質問の重複しています。どうして? –
私が間違って投稿した場合は申し訳ありませんが、コードが変更され、最初のエラーが異なっていました。だから、はい、それは2番目の問題と同じ問題でしたが、コードが変更されてしまい、新しいコードを再確認する最善の方法が不明でした。 – Jesse57
[FBに写真を投稿するとアップロードファイルエラーが発生する]の複製が可能です(http://stackoverflow.com/questions/8639499/posting-photo-to-fb-results-in-requires-upload-file-error) –