アプリケーションキャンバスページ内にユーザープロフィール画像を表示したいのですが、グラフ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に非常に慣れていないので、おそらくいくつかの非常にアマチュアの間違いを犯しています!
プロフィール写真のURLを知っているユーザーIDは次のとおりです。
http://graph.facebook.com/[UID]/picture
[UID]の代わりに$ uid変数を配置し、そのURLをフラッシュに渡すことができます
さまざまなサイズを取得するには、typeパラメーターを使用できます。
Type引数で必要な画像サイズを指定できます。これは、正方形(50x50)、小(幅50ピクセル、可変高)、大(幅約200ピクセル、可変高)のいずれかである必要があります。 http ://graph.facebook.com/squall3d/picture?type = large 。
以下に示すパラメーターを指定して、プロファイル画像のサイズを変更することもできます。
https://graph.facebook.com/[UID]/picture?width=140&height=140
うまくいくでしょう。
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture";
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
私にとってはうまくいきます
[〜#〜] edit [〜#〜]:それで、facebookは再び変更しました!ユーザー名で検索する必要はありません-以下の回答を修正しました...
https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
例えば https://graph.facebook.com/4/picture?redirect=false&height=200&width=2
ここに私のために働いたコードがあります!
有効なセッションが進行していると仮定すると、
//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に行きます!
非常に重要なことの1つは、他のGraph APIリクエストと同様に、応答でJSONデータを取得するのではなく、呼び出しがプロファイルpicのURLにHTTPリダイレクトを返すことです。したがって、URLを取得する場合は、応答HTTPヘッダーを読み取るか、FQLを使用する必要があります。
CURLの使用中にプロフィール写真を取得する際に問題が発生していました。私はしばらくの間、Facebook APIの実装に何か問題があると思っていましたが、CURLに少し追加する必要があります。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);