2013-11-03 50 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);