これをフラッシュで使用するには、いくつかの ExternalInterface 呼び出しで javascript SDK を使用する必要があります。これが私がいつもやっている方法です。
AS3
public function FBconnect():void {
ExternalInterface.addCallback("onLogin", onLogin);
ExternalInterface.addCallback("onError", onError);
ExternalInterface.call("requestLogin");
}
private function onError():void {
dispatchEvent(new DataEvent(DataEvent.ERROR));
}
public function logout():void {
ExternalInterface.call("FB.logout", null);
}
private function onLogin():void {
debugTools.trace("FB LOGIN");
connectUser();
}
private function connectUser():void {
ExternalInterface.addCallback("loadUser", userCallback);
ExternalInterface.call("connectUser");
}
private function userCallback(data:Array):void {
debugTools.trace("FB USER LOADED");
var userData:Object = data[0];
_FBuser = new FBUser(userData.id);
_FBuser.firstName = userData.first_name;
_FBuser.lastName = userData.last_name;
_FBuser.email = userData.email;
dispatchEvent(new DataEvent(DataEvent.SUCCESS));
}
JS
window.fbAsyncInit = function() {
FB.init({
appId: YOUR_APP_ID,
status: false,
cookie: true,
xfbml: false
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function connectUser() {
FB.api('/me', function(response) {
if(response) {
var usrs = new Array();
usrs.push(response);
document.getElementById('flashObj').loadUser(usrs);
} else {
document.getElementById('flashObj').onError();
}
});
};
function requestLogin() {
FB.login(function(response) {
if (response.authResponse) {
document.getElementById('flashObj').onLogin();
} else {
document.getElementById('flashObj').onError();
}
}, {scope:'email'});
}
だからそれを分解する。
ウェブページに JavaScript SDK をロードします。わからない場合は、Facebook のドキュメントでその方法を確認してください。
次に、ExternalInterface を介して JS で FB.login を呼び出し、応答時に document.getElementById を介して AS3 関数を呼び出します (swf にアクセスするため)。
次に、Graph API を使用して同じことを行い、ユーザーに関する情報を取得します。
私の経験では、これは Facebook がユーザーを Flash アプリケーションに接続するための最良のワークフローです。