0

我目前正在将 facebook 集成到我的移动 AS3 游戏中。我正在下载朋友的图片,效果很好:

    public function updateView(id:String, data:Object):void {
        FacebookMobile.api("/me/friends/",getfellaz);
        startLoading();

    }

    private function getfellaz(response:Object, fail:Object):void {     
        var a:int = response.length;
        arr = new Array();
        arr2 = new Array();
        var tempArrIDs:Array = new Array
        var k:int = 0
        for (var i:int = 0; i< a; i++ ) {
            arr.push(FacebookMobile.getImageUrl(response[i].id, 'large'));
            tempArrIDs.push(response[i].id);
        }
        arrLength = arr.length-1;
        for(var x:int = 0; x<12; x++) {
            var r:int = dejMiTyRandomy();
            randomUserPicArray.push(arr[r]);
            randomUserPicArray.push(arr[r]);
            uids.push(tempArrIDs[r]);
        }
        loadThatShit(0);
    }

然后我将图片绘制到位图并进一步使用它们......这与我的问题无关,我只是不知道如何从用户(在这种情况下为响应对象)对象获取“is_silhouette”属性。

我试图访问这个属性

     response[i].picture.is_silhouette

但这似乎是未定义的,但是当我尝试访问用户名,ID ...等时。这样,它就可以工作,如下所示:

     response[i].id

等等...

我的问题是,我如何在这个结构中访问 picture.is_silhouette 属性?

4

1 回答 1

2

尝试将getImageUrl方法更改为api方法,调用“friend_id/picture”,其中“friend_id”是朋友的 id。确保附加“?redirect=false”以获取 json 响应。

这是我的一个方法调用:

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

这是逻辑(完全编写/未经测试):

public var hasSilhouette:Boolean = false;

...

hasSilhouette = false;
checkHasImage(response[i].id)

if(hasSilhouette){
...
} else {
...
}

public function checkHasImage(user_id:int):void
{
  FacebookMobile.api(user_id+"/picture", checkHasImageResponse);
}

public function checkhasImageResponse(result:Object, fail:Object):void
{
  hasSilhouette = result.is_silhouette;
}

这将返回一个 JSON 响应,如下所示:

{
  "data": {
    "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-frc1/somenumbers.jpg", 
    "is_silhouette": false
  }
}

is_silhouette 不是来自“FacebookMobile.getImageUrl(response[i].id,...) 方法的响应的一部分。

我相信使用这个 Facebook 记录的方法你会有更好的运气:(https://developers.facebook.com/docs/reference/api/#pictures

将来,我将通过输出“响应”对象来处理测试。这将向您展示您所获得的一切。在这种情况下,“响应”来自/me/friends/并且没有对“图片”对象的引用。

最后,在他们的 Graph API Explorer 中测试 Graph API 调用很有帮助:https ://developers.facebook.com/tools/explorer

于 2013-04-30T17:17:36.003 回答