2011-11-15 37 views
0

我是Facebook新手,我試圖學習如何使用Adobe的AS3 Facebook API,但我遇到了一些問題。Facebook訪問令牌 - 從Flash獲取它在Flash中使用它

主要問題是我正在通過Javascript進行身份驗證。我成功獲取Access Token並通過ExternalInterface將其發送到我的Flash應用程序。問題在於我不明白如何在Flex中開始使用Facebook API,因爲我已經通過JS進行了身份驗證。

我嘗試使用Facebook.init方法,但回調不會觸發。這是我在確認與Facebook的會話連接成功後使用的內容:

Facebook.init(APP_ID,callback,null,accessToken);

null值是選項參數,它是可選的,accessToken值是從Javascript檢索的有效值。但正如我之前所說的那樣,回調不會觸發。

說實話,我不知道這是在我通過Javascript完成OAuth過程後開始在Flash內部工作的方式,所以任何幫助都將不勝感激。

+0

您是否正在使用Charles或其他調試代理來查看您是否收到來自Facebook的錯誤響應?您的應用程序設置是否配置爲使用OAuth 2.0? – Corey

+0

至少在Javascript中,我可以看到通過很好的答案。我甚至在提醒Flash之前發出「/ me」請求,並且響應對象具有所有正確的用戶信息。我也在JS中將oauth設置爲true。但是,Flash中的init方法不會觸發回調。我甚至無法看到我是否得到失敗對象。 – Oki

+0

此外,我沒有從Flash中得到任何錯誤。 – Oki

回答

0

終於搞定了。

在我的Flash應用程序我添加了一個選項對象傳遞給init方法,像這樣的:

VAR _options:* = {channelUrl:CHANNEL_URL, 狀態:假的, 的OAuth:真正} ;

所以我的初始化是這樣的:

Facebook.init(APP_ID,callbackMethod,期權,validAccessToken);

不確定是否所有的屬性在對象中都是必需的,但它工作。

在HTML中,我使用以下嵌入方法(如一些其他人似乎造成問題):

變種的flashvars = {}; var params = {}; var attributes = {}; params.allowscriptaccess =「always」; swfobject.embedSWF(「NestleEaster.swf」,「myAlternativeContent」,「743」,「743」,「9.0.0」,flashvars,params,attributes,{name:「flashContent」});

Tha很漂亮。現在我可以在我的Flash應用程序中自由使用API​​。希望這可以幫助別人。