現在、モバイル AS3 ゲームへの Facebook の統合に取り組んでいます。友人の写真をダウンロードしていますが、問題なく動作し、現在問題はありません。問題は、ユーザーがシルエット (デフォルト) の画像を持っているか、自分の (is_silhouette プロパティ) を持っているかを検出しようとしていることです。
コードは次のとおりです。
(response[i].id) は、以前の API 通信から取得した有効なユーザー ID です。
...
HasDefault(response[i].id);
...
private function HasDefault(uid:int):void{
FacebookMobile.api("/"+uid+"/picture", callbackX);
}
private function callbackX(response:Object,fail:Object):void{
if (response != null){
trace(response.url);
trace(response.is_silhouette);
}else{
trace("here goes nothing...");
}
まず最初に...上記のコードには2つの問題があります。最初の問題は、絶対 URL を使用しない限り、facebook が応答しないため、API メソッドは実際には次のようになっていることです。
FacebookMobile.api("https://graph.facebook.com/"+uid+"/picture", callbackX);
ここで絶対 URL を使用する必要がある理由がわかりません。他の場所では ID/関数で十分なためです...しかし、それはまだ主な問題ではありません。
絶対 URL を使用すると、Facebook から有効な応答が得られますが、このhttps://developers.facebook.com/docs/reference/api/using-pictures/によると、応答オブジェクトで response.url と response.is_silhouette を取得する必要があります. しかし、空の応答オブジェクトしか受け取りません...私は本当に必死になり始めています。
さらに、私はhttps://developers.facebook.com/tools/explorerエクスプローラーに THE SAME リクエストを貼り付けようとしましたが、驚きがありました...それは返されます
{
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-frc1/somenumbers.jpg",
"is_silhouette": false
}
}
...これはまさに私が必要とするものです...しかし、アプリケーション内では空の応答オブジェクトしか得られません...