web-dev-qa-db-ja.com

FacebookのグラフAPIを使用してユーザーのプロフィール写真を表示するにはどうすればよいですか?

アプリケーションキャンバスページ内にユーザープロフィール画像を表示したいのですが、グラフAPIを使用してそれを行う方法はありますか?

私はFBMLを使用してそれを行うことができることを知っていますが、プロフィール写真を自分が作っているフラッシュゲームに渡したいので、APIからプロフィール写真を取得して変数として送信する必要があります、ここにコードがありますこれまでのところ、

$facebook = new Facebook(array(
    'appId'  => FACEBOOK_APP_ID,
    'secret' => FACEBOOK_SECRET_KEY,
    'cookie' => true,
    'domain' => 'myurl/facebook-test'
));

$session = $facebook->getSession();

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . $me['picture'] . "<br />";
  echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid;

$me['picture']は機能していないように見えますが、私はまだグラフAPIに非常に慣れていないので、おそらくいくつかの非常にアマチュアの間違いを犯しています!

70
Odyss3us

プロフィール写真のURLを知っているユーザーIDは次のとおりです。

http://graph.facebook.com/[UID]/picture

[UID]の代わりに$ uid変数を配置し、そのURLをフラッシュに渡すことができます

125
Raine

さまざまなサイズを取得するには、typeパラメーターを使用できます。

Type引数で必要な画像サイズを指定できます。これは、正方形(50x50)、小(幅50ピクセル、可変高)、大(幅約200ピクセル、可変高)のいずれかである必要があります。 http ://graph.facebook.com/squall3d/picture?type = large

81
squall3d

以下に示すパラメーターを指定して、プロファイル画像のサイズを変更することもできます。

https://graph.facebook.com/[UID]/picture?width=140&height=140

うまくいくでしょう。

22
Deepak Thomas
  //create the url
  $profile_pic =  "http://graph.facebook.com/".$uid."/picture";

 //echo the image out
 echo "<img src=\"" . $profile_pic . "\" />"; 

私にとってはうまくいきます

7
Kannan Prasad

[〜#〜] edit [〜#〜]:それで、facebookは再び変更しました!ユーザー名で検索する必要はありません-以下の回答を修正しました...

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
  • UID =プロファイルまたはページID
  • redirectはjsonを返す(false)か、画像にリダイレクトする(true)
  • 高さと幅は作物です
  • 認証を必要としません

例えば https://graph.facebook.com/4/picture?redirect=false&height=200&width=2

Facebook Graph picture doc

4
sidonaldson

ここに私のために働いたコードがあります!

有効なセッションが進行していると仮定すると、

//Get the current users id
$uid = $facebook->getUser();

//create the url
$profile_pic =  "http://graph.facebook.com/".$uid."/picture";

//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";

ありがとう、Raineに行きます!

3
Odyss3us

非常に重要なことの1つは、他のGraph APIリクエストと同様に、応答でJSONデータを取得するのではなく、呼び出しがプロファイルpicのURLにHTTPリダイレクトを返すことです。したがって、URLを取得する場合は、応答HTTPヘッダーを読み取るか、FQLを使用する必要があります。

1
Sanket Sahu

CURLの使用中にプロフィール写真を取得する際に問題が発生していました。私はしばらくの間、Facebook APIの実装に何か問題があると思っていましたが、CURLに少し追加する必要があります。

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
1
adjwilli