我目前正在将 facebook 集成到我的移动 AS3 游戏中。我正在下载朋友的图片,效果很好,目前不是问题。问题是,我试图检测用户是否有剪影(默认)图片或他自己的(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...");
}
首先要做的事情...上面的代码有两个问题。第一个问题是,除非我使用绝对 URL,否则 facebook 不会响应,因此 API 方法实际上如下所示:
FacebookMobile.api("https://graph.facebook.com/"+uid+"/picture", callbackX);
我不知道为什么我必须在这里使用绝对 url,因为其他任何地方 id/function 都足够好......但这仍然不是主要问题。
如果我使用绝对 URL,我确实会从 facebook 获得有效响应,但根据此https://developers.facebook.com/docs/reference/api/using-pictures/我应该在我的响应对象中获得 response.url 和 response.is_silhouette . 然而,我只收到空的响应对象......我开始非常绝望。
此外,我试图将相同的请求粘贴到https://developers.facebook.com/tools/explorer资源管理器中,然后惊喜......它返回
{
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-frc1/somenumbers.jpg",
"is_silhouette": false
}
}
...这正是我需要的...但是在应用程序中我只得到空的响应对象...