2012-06-13 64 views
2

首先道歉,如果我得到這個錯誤,這是我的第一篇文章。FacebookMobile.init OAuthException

我一直在構建一個Android遊戲,我一直在試圖整合Facebook發佈到它。這裏是高科技的細節:

  • Windows 7的
  • 發展在FDT
  • 使用Flex 4.6和Adobe AIR爲Android
  • 的ActionScript 3.0。

我已經插入到FacebookMobile.init中,並且傳遞了我的應用程序ID和回調函數。不過,我得到以下信息返回:

「{」錯誤「:{」消息「:」一個積極的訪問令牌必須用於查詢當前的 用戶 信息「」類型「:」 OAuthException「,」code「:2500}}」

我注意到在其他頁面上,人們買了這個沒有真正的解決方案。我曾嘗試過在另一個網站上發現的damarmada解決方案,但這也無濟於事。

感謝您的時間,

+0

看起來你已經過去了初始化,並且已經試圖查詢數據......但是,很難說沒有代碼。 – CBroe

+0

是的,這是什麼奇怪的,我從調用這個: 「FacebookMobile.init(FacebookInformation.FACEBOOK_APP_ID,onInit);」 –

回答

0

這聽起來像您的應用程序還沒有登錄,或Facebook的應用程序是不是在登錄讓你登錄,如果您使用單一登入/ Facebook的應用程序的訪問令牌然後您提供數據請求。

+0

是的這是什麼讓我感到困惑,錯誤信息是從字面上回來: 「FacebookMobile.init(FacebookInformation.FACEBOOK_APP_ID,onInit);」 –

0

已更新 我相信現在您將FacebookMobile.login()放在了錯誤的位置。將它添加到FacebookMobile.init()的處理程序中,理想情況下在某種其他測試是否成功對象回到空(它會在您未初始化時)。

雖然facebook-actionscript-api確實可以工作,但您仍然可以使用下面的代碼。

爲了讓簡單的爲自己的東西,建議您遵循以下的「Windows,Mac OS X和Linux的本機應用程序」下的建議標題這裏:https://developers.facebook.com/docs/authentication/

按照DOC的最後一行出現,使用一個StageWebView(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/StageWebView.html )並偵聽StageWebView locationChange事件。

如您所願處理位置重定向uris,但這裏的關鍵是它們爲訪問令牌提供的默認訪問令牌(https://www.facebook.com/connect/login_success.html)來獲取訪問權限使用StageWebView位置屬性從網址獲取令牌,一旦它位於您的應用中,您就可以輕鬆創建自己的URLRequest並使用它以遠程服務的方式使用它。

最好我有,請評論,如果你有更好的方法。

0

THE SOLUTION !!

private function onAddedToStage(event:Event):void 
{ 
    FacebookMobile.init(_appId, initHandler); 
} 
private function initHandler(success:Object,fail:Object):void 
{ 
    if(success)   
{    
    // good the user is already connected   
}   
else    
{ 
    var myWebView:StageWebView = new StageWebView(); 
    myWebView.stage = Starling.current.nativeStage; 
    myWebView.viewPort = new Rectangle(0,0,stage.stageWidth,stage.stageHeight); 
    FacebookMobile.login(loginHandler, Starling.current.nativeStage, PERMISSIONS, myWebView); 
    }  
} 

來自:http://forums.adobe.com/thread/928058

1

對我來說它的工作。這是我做的。

1,我在facebook應用程序設置頁面中使用「添加平臺」按鈕爲我的應用程序添加了android平臺。
2,我下載了源代碼並用它代替了swc。
3,在Facebook應用程序設置頁面中,轉到設置 - >高級,並將http://www.facebook.com/connect/login_success.html添加到「有效的OAuth重定向URI」字段中。並設置「本機或桌面應用程序?」到'是'。現在,我的應用程序會將Facebook登錄頁面加載到StageWebView中,然後我們可以登錄。 這是我如何登錄。

var permissions:Array = ["user_about_me","user_friends","publish_actions"]; 
var stageWeb:StageWebView = new StageWebView(); 
stageWeb.stage = stage;// Your app stage 
stageWeb.viewPort = new Rectangle (0, 0, stage.stageWidth, stage.stageHeight); 
FacebookMobile.login (onLogin, stage, permissions, stageWeb); 

希望這對你也有幫助。