0

グラフAPIを使用してユーザーのプロフィール写真を撮ろうとしましたが、名、メール、fb idが真でしたが、ユーザーのプロフィール写真を撮ることができず、すべてを試し、すべてを読みましたが失敗しました。

Facebookに接続すると、プロファイルのWebサイトのプロファイル画像領域の写真領域に大きな疑問符が表示されます。

また、temp_fb_idパラメータについても問題はありません。これもtrueを挿入します。

これが私のコードです:

// above is the part with sessions getting user id, user email exc.
// $temp_fb_id is the variable that i use for taking the info for user name exc and its working but with photo part, not working , 
 //  img src is showing https://graph.facebook.com//picture?type=square,with a output, big question mark

 $first_name = $user->first_name;
 $last_name = $user->last_name;

 $photo = "https://graph.facebook.com/{$temp_fb_id}/picture?type=square";
 $photothumb = "https://graph.facebook.com/{$temp_fb_id}/picture?type=normal";
 $photolarge = "https://graph.facebook.com/{$temp_fb_id}/picture?type=large";


try {
$fb_insert = "INSERT INTO `members`(`first_name`, `photo_small`, `photo_thumb`, `photo`, `last_name`, `fb_id`) VALUE(:first_name, :photo, :photothumb, :photolarge, :last_name, :temp_fb_id)";
 $fb_insert_do = $db->prepare($fb_insert);
 $fb_insert_do->bindParam(':first_name', $first_name, PDO::PARAM_STR);
 $fb_insert_do->bindParam(':last_name', $last_name, PDO::PARAM_STR);
 $fb_insert_do->bindParam(':photo', $photo, PDO::PARAM_STR);
 $fb_insert_do->bindParam(':photothumb', $photothumb, PDO::PARAM_STR);
 $fb_insert_do->bindParam(':photolarge', $photolarge, PDO::PARAM_STR);
 $fb_insert_do->execute();
 }

 catch(PDOException $e) {
            /* catch and log errors over here. */
        }

ありがとうございました

4

1 に答える 1

0

渡したユーザーIDが何らかの理由で間違っているようです。$user->idの結果を保存しているものと比較し$tmp_fb_idて、値が等しいことを確認する必要があります。srcこれらのURLの1つをタグのに貼り付けimgて、写真をレンダリングできるようにする必要があります。idをに置き換えて、$user->usernameそれがより良いかどうかを確認することもできます。

質問:これらのURLを、保存されたIDから実行時に生成するのではなく、データベースに保存するのはなぜですか?Facebookが、数行のコードではなく、将来プロフィール写真を取得するためにURLスキームを変更することを決定した場合は、すべてのdbレコードを更新する必要があります。

于 2012-09-28T16:08:45.903 に答える