Вы используете библиотеку javascript Facebook для аутентификации пользователя с помощью facebook.
Поэтому, чтобы ваше приложение работало с Flash, вам нужно, чтобы javascript API запрашивал дополнительные разрешения для публикации истории в ленте пользователя.
Когда вы запрашиваете расширенные разрешения и пользователь предоставляет их, javascript api вернет токен доступа. Это будет длинная строка. Передайте эту строку во флэш-память, так как флэш-память должна будет включать этот токен доступа при публикации новости в Facebook.
Ниже мне нравится, как мне этого добиться, когда я использую Facebook и прошиваю вместе.
<script src="js/swfobject.js"></script>
<script>
// make it safe to use console.log always
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try
{console.log();return window.console;}catch(err){return window.console={};}})());
// Set up SWF Address
var flashvars = {
};
var params = {
menu: "false",
scale: "noScale",
allowFullscreen: "true",
allowScriptAccess: "always",
bgcolor: "#000000",
wmode: "transparent" // can cause issues with FP settings & webcam
};
var attributes = {
id:"YourEmbeddedSwf"
};
swfobject.embedSWF(
"YourEmbeddedSwf.swf",
"altContent", "520", "724", "10.0.0",
"expressInstall.swf",
flashvars, params, attributes);
</script>
</head>
<body>
<div id="fb-root"></div>
<script>
// Load Facebook API
window.fbAsyncInit = function() {
FB.init({ appId: 'PLACE YOUR APP ID HERE',
channelUrl : '//yoursite.com/channel.html',
status: true,
cookie: true,
xfbml: true,
oauth: true});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
// Custom Facebook Calls.
// Call getAccessToken() from flash using External Interface,
function getAccessToken(){
FB.login(function(response) {
if (response.authResponse) {
var access_token = FB.getAuthResponse()['accessToken'];
//Log your access token so you can be sure the javascript is worjking,.
console.log('Access Token = '+ access_token);
var swf = document.getElementById("YourEmbeddedSwf");
// Call a flash function exposed with External Interface.
swf.setAccessToken(access_token);
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: ''});
}
// Get Swf
function getSwf(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
}
</script>
<!-- Embed the swf -->
<div id="altContent">
<h1>Alternate Content</h1>
<p><a href="http://www.adobe.com/go/getflashplayer">Get Adobe Flash player</a></p>
</div></body>
</html>