【发布时间】:2013-04-30 19:01:59
【问题描述】:
我目前正在将 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
}
}
...这正是我需要的...但在应用程序中我只得到空响应对象...
【问题讨论】:
-
为了启迪,这里是上一个问题:stackoverflow.com/questions/16307115/…
标签: facebook actionscript-3 facebook-graph-api mobile air