2011-08-17 54 views
0

我對flex和as3很新穎。我需要整合facebook for flex移動項目。我整合了面向android的facebook api。我正在尋找互聯網上的優秀教程,以便在flex中集成facebook。請建議我好教程Flex:用於flex項目的facebook apis

+3

投票關閉,因爲用戶沒有[任何研究](http://code.google.com/p/facebook-actionscript-api/),問題太廣泛。 –

回答

0

有一個全動作腳本的方法來使用facebook apis,涉及facebook flash graph api,但它有點bug。只要你在瀏覽器中,它就可以用於大多數事情。

圖形api用於提示用戶登錄到他們的帳戶並授予應用程序許可權執行事件,然後對該用戶帳戶執行所需的操作。你開始用Facebook.init方法的全過程:

Facebook.init(APP_ID, onInit); 

哪裏APP_ID爲您的應用程序的ID你,一旦你在Facebook上創建應用程序,並OnInit中是您創建一個回調函數,它應該像如下:

function onInit(result:Object, fail:Object):void{ 
    var opts:Object = {perms:"publish_stream"}; 
    if (result) //already logged in because of existing session 
     doStuff(); //in this case, publish on user's wall 
    else 
     Facebook.login(onLogin, opts); 
} 

這兩個參數必須在那裏。如果定義了請求,那就意味着用戶已經登錄。如果沒有,請提示用戶登錄並授予應用程序權限。查找更多關於開發者臉書網站的權限。

Facebook.login的第一個參數是回調函數,第二個參數是您希望用戶同意的權限。 onLogin()如下:

function onLogin(result:Object, fail:Object):void { 
      if (result) //successfully logged in 
       doStuff(); 
      else   
        oh_well(); // they don't want to use it. 
} 

這可能會提示用戶登錄,但是,它會立即返回空值的結果。這與Facebook登錄功能編寫得不好有關,如果你在網站上設置你的Flash並用JavaScript控制檯進行調試,你可以看到它明顯在定時器上運行,看看你是否退出了或沒有退出,它永遠不會結束。但如果這不是什麼大問題......

...現在,爲doStuff。就我而言,我想發佈一條消息,swf和縮略圖到用戶的牆上。我用下面的代碼做了這個:

function doStuff(){ 
    var obj:Object={ 
    "message": "This is a test message", 
    "picture": "thumbnail.jpg", 
    "source": "flash file" 
    } 

    Facebook.api("/me/feed", onCallApi, JSON.decode(obj), "POST"); 

} 

Facebook.api()真的很重要。 onCallApi是回調函數,JSON.decode(obj)是上面的json對象,具有適當的添加。 「我/喂」是Facebook如何連接一個飼料,用戶,朋友等Learn more about that stuff here. facebook文檔有一個更好的方法來放置Flash文件,使用相同的功能,但編碼的JSON中的不同參數,但我沒有能夠得到它的工作(我認爲這是因爲嵌套的jsons)。正如你所看到的,你需要來自as3corelib的JSON解碼器。

onCallAPI:

function onCallApi(result:Object, fail:Object):void { 
    if (result) { 
     //successful post 
    } else { 
      //unsuccessful post 
    } 
} 

,並應爲大多數應用程序做。

facebook flash api只是與javascript api接口,因此您需要從嵌入flash的html頁面上的facebook中導入適當的javascript函數。

如果你願意,你可以很容易地修復facebook.login。你可以繼續撥打Facebook。init()直到一段時間過去,或者在javascript中生成登錄窗口,監聽窗口關閉時的狀態,然後使用ExternalInterfaces與Flash回調接口來識別結果

0

在我所有的嘗試與閃存的fcebook API一起工作,我遇到了不間斷的問題。

Facebook被開發人員投票選爲世界上最糟糕的API,因爲經常發生變化以及錯誤纏身的無證代碼。閃存庫將與已經非常糟糕,破碎的開發者體驗不同步......儘管它們可能曾經一起工作過。 Facebook因沒有通知而闖入事件而臭名昭着。

迄今爲止,我的最大成功來自於與PHP API集成,以便使用JSON獲取需要的數據。 Facebook似乎更加認真地對待他們(他們不負責Flash)PHP API,並且希望能夠更新和工作。