1

페이스 북을 사용하여 로그인하는 크로스 플랫폼 (Android 및 I.O.S) 모바일 앱이 포함 된 프로젝트를 계획 중입니다. 나는 facebook API에 대한 경험이 없으며 초보자를위한 모든 자료를 찾을 수 없다. 크로스 플랫폼 기능을 위해 공기를 사용하여 각 플랫폼에 대해 여러 가지 솔루션을 사용하지 않으려합니다. 나는 많은 도움을 찾았지만 많이 찾지 못했습니다. 여러분 중 누구라도 이런 종류의 일로 시작해서 완전히 사용 된 자원으로 안내 할 수 있습니까?모바일 용 air abobe as3 api

답변

4

AS3 Facebook API 만 있으면됩니다. (http://code.google.com/p/facebook-actionscript-api/) 아마도 JSON 메서드와 같은 몇 가지 사항을 변경해야하지만 그렇지 않으면 문제가없는 것 같습니다. 거기에서 몇 가지 예제를 다운로드 할 수 있으며, 다양한 유형의 환경에 대한 사용법을 볼 수 있습니다.

또한, 좀 더 구체적인 질문이 있으면 물어 톰 Krcha http://www.adobe.com/devnet/games/articles/getting-started-with-facebooksdk-actionscript3.html

에서이 문서를 참조하십시오. 이것은 너무 일반적입니다.

편집

: 여기 내가 작은 프로젝트를 위해 몇 시간 전에 쓴 클래스입니다

package com.company.social { 

    import com.facebook.graph.FacebookMobile; 
    import com.company.AppConst; 
    import com.company.IDestroyable; 
    import com.company.Main; 
    import com.company.displayassets.WebViewCloseStripe; 
    import com.company.events.FacebookControllerEvent; 
    import com.company.events.TwitterControllerEvent; 

    import flash.display.BitmapData; 
    import flash.display.PNGEncoderOptions; 
    import flash.display.Sprite; 
    import flash.display.Stage; 
    import flash.events.EventDispatcher; 
    import flash.events.MouseEvent; 
    import flash.geom.Rectangle; 
    import flash.media.StageWebView; 
    import flash.utils.ByteArray; 
    import flash.utils.clearTimeout; 
    import flash.utils.setTimeout; 

    public class FacebookController extends EventDispatcher implements IDestroyable { 

     private static const APP_ID:String = "1234512345"; // Your App ID. 
     private static const SITE_URL:String = "some_url"; 
     //Extended permission to access other parts of the user's profile that may be private, or if your application needs to publish content to Facebook on a user's behalf. 
     private var _extendedPermissions:Array = ["publish_stream","user_website","user_status","user_about_me"]; 
     private var _stage:Stage; 
     private var _webView:StageWebView; 
     private var _topStripe:WebViewCloseStripe; 
     private var _activity:String; 
     private var _timeoutID:uint; 
     public static const ACTIVITY_LOGIN:String = "login"; 
     public static const ACTIVITY_POST:String = "post"; 

     public function FacebookController(stage:Stage) { 
      _stage = stage; 
      init(); 
     } 

     private function init():void { 
      _activity = ACTIVITY_LOGIN; 
      startTimeout(); 
      FacebookMobile.init(APP_ID, onHandleInit, null); 
     } 

     private function onHandleInit(response:Object, fail:Object):void { 
      if (response) { 
       stopTimeout(); 
       dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.LOGIN_COMPLETE)); 
       //FacebookMobile.api("/me", handleUserInfo); 
      } 
      else { 
       /*trace("no response, login -->"); 
       for(var prop in fail["error"]) { 
        trace(prop+": "+fail["error"][prop]); 
       }*/ 
       loginUser(); 
      } 
     } 

     private function startTimeout():void { 
      trace("timeout start"); 
      clearTimeout(_timeoutID); 
      _timeoutID = setTimeout(timeout, AppConst.TIMEOUT_TIME); 
     } 

     private function timeout():void { 
      trace("timed out"); 
      clearTimeout(_timeoutID); 
      dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.TIMEOUT)); 
     } 

     private function stopTimeout():void { 
      trace("timeout stop"); 
      clearTimeout(_timeoutID); 
     } 

     private function loginUser():void { 
      stopTimeout(); 
      _topStripe = new WebViewCloseStripe(); 
      _topStripe.getCloseButton().addEventListener(MouseEvent.CLICK, closeClickHandler); 
      _stage.addChild(_topStripe); 

      _webView = new StageWebView(); 
      _webView.viewPort = new Rectangle(0, _topStripe.height, _stage.fullScreenWidth, _stage.fullScreenHeight - _topStripe.height); 

      FacebookMobile.login(handleLogin, _stage, _extendedPermissions, _webView); 
     } 

     private function handleLogin(response:Object, fail:Object):void { 
      if(_topStripe) { 
       _topStripe.getCloseButton().removeEventListener(MouseEvent.CLICK, closeClickHandler); 
       _topStripe.destroy(); 
       _stage.removeChild(_topStripe); 
       _topStripe = null; 
      } 
      if(_webView) { 
       _webView = null; 
      } 
      if(response) { 
       dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.LOGIN_COMPLETE)); 
       //FacebookMobile.api('/me', handleUserInfo); 
      } 
      else { 
       dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.LOGIN_ERROR)); 
      } 
     } 

     private function closeClickHandler(e:MouseEvent):void { 
      dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.CLOSE)); 
     } 

     private function handleUserInfo(response:Object, fail:Object):void { 
      if (response) { 
       for(var prop in response) { 
        trace(prop+": "+response[prop]); 
       } 
      } 
     } 

     private function handleUploadImage(result:Object, fail:Object):void { 
      stopTimeout(); 
      if(result) { 
       dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.POST_COMPLETE)); 
      } 
      else { 
       dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.POST_ERROR)); 
      } 
     } 

     public function postWithImage(message:String, imageData:BitmapData):void { 
      _activity = ACTIVITY_POST; 
      var byteArray:ByteArray = imageData.encode(new Rectangle(0, 0, imageData.width, imageData.height), new PNGEncoderOptions()); 
      var params: Object = new Object; 
      params.image = byteArray; 
      params.fileName = "image.png"; 
      params.message = message; 
      startTimeout(); 
      FacebookMobile.api("/me/photos", handleUploadImage, params, "POST"); 
     } 

     public function reset():void { 
      FacebookMobile.logout(handleReset, SITE_URL); 
     } 

     public function handleReset(response:Object):void { 
      dispatchEvent(new FacebookControllerEvent(FacebookControllerEvent.RESET)); 
     } 

     public function destroy():void { 
      if(_webView) { 
       _webView.dispose(); 
       _webView = null; 
      } 

      if(_topStripe) { 
       _topStripe.getCloseButton().removeEventListener(MouseEvent.CLICK, closeClickHandler); 
       _topStripe.destroy(); 
       _stage.removeChild(_topStripe); 
       _topStripe = null; 
      } 

      _stage = null; 
     } 
    } 
} 
+0

고마워, 내가 위에서 언급해야하지만 주위에 장난 꾸러기지만, 페이스 북 - actionscript - API지만 어디서부터 시작 해야할지 모르겠다. 그 몇 가지 예를 들여다 보아라. – Lonergan6275

관련 문제