0

現在、モバイル 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
  }
}

...これはまさに私が必要とするものです...しかし、アプリケーション内では空の応答オブジェクトしか得られません...

4

1 に答える 1

1

「FacebookMobile.api(" https://graph.facebook.com/ "+uid+"/picture", callbackX);」の行がわかりません。します。ただし、どのようなライブラリであっても、使用をやめてください。実行したい呼び出しを指定できないからです。URLLoader を使用して、グラフ API 呼び出しを自分で呼び出すことができます。

ここで魔法のような問題が発生します: 画像をリクエストするときに追加の変数を追加できるようにする必要があります: "?redirect=false" これは、facebook に json 応答を返すように指示します。その変数がない場合は、実際の画像へのリダイレクトを取得します。これは通常、人がとにかく望んでいるものです。それがどのように機能するかを確認するには、以下の 2 つのリンクをテストしてください。そしてそれをtrueに設定したもの-あなたはそうしません。

https://graph.facebook.com/shaverm/picture?redirect=false

https://graph.facebook.com/shaverm/picture?redirect=true

画像を説明するjson応答ではなく、画像を取得していることは確かです。

于 2013-04-30T19:16:47.597 に答える