這是一種使用Graph API連接到Facebook的方式。一切都在評論中解釋。這實際上是連接到Facebook,不會張貼到牆壁或任何東西。該部分可以在本課下面找到。
package com.DAL
{
import com.facebook.graph.Facebook;
import flash.events.Event;
import com.facebook.graph.data.FacebookSession;
import flash.events.EventDispatcher;
import flash.events.MouseEvent;
import com.fbLoginButton;
import com.adobe.serialization.json.JSON;
public class FBConnect extends EventDispatcher
{
/******************************************
* Variables
******************************************/
private var _applicationID:String;
private var _extendedPermissions:Object;
/******************************************
* Constants
******************************************/
public static const CONNECTED:String = "CONNECTED";
/******************************************
* Properties
******************************************/
public function get ApplicationID():String
{
return _applicationID;
}
/******************************************
* Constructor
******************************************/
public function FBConnect()
{
super();
//Set applicationid
_applicationID = "YOUR_ID";
//Set permissions to ask for
_extendedPermissions = {perms:"read_stream, publish_stream, user_about_me, read_friendlists, user_photos"};
//Initialize facebook
Facebook.init(_applicationID);
}
/******************************************
* Methods
******************************************/
public function login(e:MouseEvent):void
{
Facebook.login(handleLogin, _extendedPermissions);
}
private function handleLogin(response:Object, fail:Object):void
{
dispatchEvent(new Event(CONNECTED));
}
}
}
這應該照顧連接到Facebook。如果你想發佈到牆壁或任何東西,你可以在下面找到一個小例子。
/******************************************
* Constructor
******************************************/
public function FBLogic()
{
super();
_connect = new FBConnect();
_connect.addEventListener(FBConnect.CONNECTED, startLoaders);
initLoaders();
}
/******************************************
* Methods
******************************************/
...
public function post(message:String):void
{
var _params:Object = new Object();
_params.access_token = Facebook.getSession().accessToken;
_params.message = message;
Facebook.api("/" + _userID + "/feed", messagePosted, _params, "POST");
}
public function messagePosted(response:Object, fail:Object):void
{
dispatchEvent(new Event(MESSAGEPOSTED));
}
public function login(e:MouseEvent):void
{
var _loginButton:fbLoginButton = e.target as fbLoginButton;
_loginButton.alpha = 0;
_loginButton.visible = false;
_connect.login(e);
}
如果這沒有辦法,你可能已經忘記添加一些代碼到你的html文件。請務必將下面的代碼添加到您的HTML文件的頭部:
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
而且你還需要一個名爲FB-根格,聲明如下。
<body>
<div id="fb-root"></div>
<div id="flashContent">
</div>
</body>
您使用的是哪個版本的Facebook API?在這裏你可以下載最新的一個:http://code.google.com/p/facebook-actionscript-api/ –
我使用最近的圖形api即GraphAPI_Web_1_6_1.swc.I可以登錄並授予權限.Loginhandler不是被觸發。我嘗試了與舊的瑞士法郎應用程序,即Facebookgraph api,它工作得很好... – newbie
strage,嘗試查找相同的問題,你可以下載這個API,可能有類似的東西,如果你認爲這是一個BUG,然後報告。 –