2013-04-30 47 views
0

即时通讯工作在facebook集成到我的手机AS3游戏。我正在下载朋友图片,效果很好,目前不是问题。问题是,我试图检测,如果用户有剪影(默认)图片或他自己的(is_silhouette属性);Facebook的图形API函数 - 空回复

这里不用代码:

(反应[I] .ID)是一个我已经从以前的API交际得到第一

... 
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..."); 
    } 

第一件事情有效的用户ID ...此代码上面有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对象中得到response.url和response.is_silhouette。然而,我只接受空的回应对象......我开始变得绝望。

此外,我试图粘贴相同的请求到https://developers.facebook.com/tools/explorer Explorer和意外的惊喜......它返回

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

...这正是我需要的...但在应用程序中我只得到空响应对象...

+1

对于启蒙,这是前面的问题:http://stackoverflow.com/questions/16307115/facebook-graph-api-function-empty-response – 2013-05-01 15:05:59

回答

1

我不知道你在线“FacebookMobile.api(”https://graph.facebook.com/“+ uid +”/ picture“,callbackX);”确实。 但是无论什么图书馆,停止使用它,因为它不让你指定你想要的呼叫。您可以使用URLLoader自己调用图形API调用。

所以这里是错误的神奇的事情:你需要能够追加一个额外的变量,当你请求图片:“?redirect = false” 这告诉Facebook给你一个JSON响应。如果你没有这个变量,你会得到一个重定向到实际的图像,这通常是一个人想要的。 要了解它的工作原理,请测试下面的两个链接,一个使用redirect = false - 您想要的。一个与它设置为真 - 你不这样做。

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

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

我敢肯定发生了什么事是你所得到的图像,而不是后面的描述图像的JSON响应。

+0

我会研究。顺便说一下,FacebookMobile是OpenDraw API的官方Adobe sdk ... – Casper522 2013-04-30 19:19:53

+0

啊,是的。那个东西。最后更新于2011年10月? https://code.google.com/p/facebook-actionscript-api/source/list 我想也许有时间放弃它,并直接切换到调用图形。 – 2013-04-30 19:42:20

+0

你是对的人,我试图加载它与重定向虚假通过standart加载器/请求模型,它的工作就像一个魅力,谢谢。是的,也许是,谢谢你的建议 – Casper522 2013-04-30 19:44:17