2013-11-03 331 views
0

我正在使用adobe air和flash pro製作移動應用程序(Android和IOS)。這是我第一次嘗試使用facebook api。問題(我認爲)我有的是FacebookMobile.login方法沒有返回任何東西后登錄btn按下,即我沒有得到登錄或登錄失敗的跟蹤消息。如果我至少得到登錄失敗消息,至少我會知道onLogin函數被調用。以下是我的as3課點擊登錄後Facebook登錄不會調用登錄功能

package { 

import flash.display.MovieClip; 
import flash.media.*; 
import flash.media.Camera; 
import flash.media.CameraUI; 
import flash.events.Event; 
import flash.events.*; 
import flash.ui.Multitouch; 
import flash.ui.MultitouchInputMode; 
import flash.display.Sprite; 

import com.facebook.graph.FacebookMobile; 
//import com.facebook.graph.windows; 


public class Main extends MovieClip { 

    private var logInBtn:LogIn = new LogIn(); 
    private var vidCon:Video = new Video(); 
    static const APP_ID:String = "1234512345"; 
    protected var extendedPermissions:Array = ["publish_stream","user_website","user_status","user_about_me"]; 

    public function Main() { 
     // constructor code 
     trace("main loaded"); 
     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 
     FacebookMobile.init(APP_ID, onInit); 
    } 

    public function onInit(success:Object, fail:Object):void{ 
     if (success){ 
      trace("Already logged in"); 
     } 
     else{ 
      trace("Not logged in"); 
      addChild(logInBtn); 
      logInBtn.x = logInBtn.y =200; 
      logInBtn.addEventListener(TouchEvent.TOUCH_BEGIN, logInbtnPressed); 
     } 
    } 

    private function logInbtnPressed(e:TouchEvent){ 

     removeChild(logInBtn); 
     FacebookMobile.login(onLogin,stage, extendedPermissions); 
    } 
    //--the below function dosnt seem to be getting called-- 
    public function onLogin(success:Object, fail:Object):void{ 
     if (success){ 
      trace("Logged In\n"); 
      loggedIn(); 
     } 
     else{ 
      trace("Login Failed\n"); 
     } 
    } 

    public function onLogout(success:Boolean):void { 
     trace("Log out"); 
    } 
} 

任何見解將不勝感激。

+0

你是否在FB上設置了一切?你有沒有有效的應用ID? – Fygo

+0

是的,我在沙箱模式下設置了一個應用程序。我在這裏更改了發佈的應用程序ID,但在我的課程中有正確的 – Lonergan6275

回答

0

我發現我需要添加一個web視圖到facebookMobile.login調用的解決方案。

private var webView = new StageWebView(); 
webView.stage = stage; 
webView.viewPort = new Rectangle(10, 10, (stage.stageWidth -20), (stage.stageHeight - 20)); 
FacebookMobile.login(onLogin , this.stage, extendedPermissions, webView);