Actionscript 3 :: Ensuring Crossdomain Policy Files Have Been Retrieved For All Facebook Image Servers?
Aug 10, 2010
I've recently started putting together a Facebook Connect AS3 app and retrieving objects and images through the Graph API.Running anywhere but locally, I receive security errors of the form: SecurityError: Error #2122: Security sandbox violation: Loader.content: xxxx cannot access url...A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.If I add a line of the form:[code]One thing I'd considered was retrieving the crossdomain policy file on a per image basis, capturing the domain from the image URL before making the image request. Unfortunately, at least via the Graph solution (and I haven't looked too closely at the others), their servers resolve the image url after the request is made, from something more generic like: url...Has anyone found a more dependable means of ensuring that images can be retrieved without security sandbox violations? Or do Facebook maintain a definitive list that developers need to keep an eye on?
I'm working on a Flash/Facebook game. My swf and socket server are on different domains, so I have to use a socket policy file. According to Adobe, they have "filed with IANA, the Internet Assigned Numbers Authority, to reserve port 843 for the purposes of serving socket policy files." Unfortunately, my server has port 843 closed. I asked my server guy to open the port. Here's his reply:
[quote]One of the points Matt mentioned is even if we open that particular port how would you ensure the scores of people accessing this game from their schools, libraries or even people internal to OurCompany will have connectivity on the port. Let me explain, in order for traffic to flow on port 843 from the browser to the smart fox server, the users ISP also has to allow for that traffic to pass outbound from the users browser. It is possible that several users would not be able to run it, is that risk acceptable ?[/quote]
How common is it for ISPs to block port 843? I assumed that, since this is an Adobe standard, that ISPs would now have it open by default. What's the scoop?
I'm trying to display the profile images from both facebook and twitter. For facebook, the URLs I'm receiving are something like this (not actual urls):[URL]... Which is then redirected to the 'actual' url like this:[URL].. I'm also doing this with twitter, with the same issue (redirected url).
So, when I load the image, it loads fine. But when I close the container that the image is in, then I get the security sandbox violation. I can get this all to work if I add the URL from the 'actual' image url like this:
in my flex application:[URL].. when i run my app, I catch this error:
SecurityError: Error #2123: Security sandbox violation: Loader.content: http://mySite.com/2/BusFlex/BusProducts.swf/[[DYNAMIC]]/2 cannot access http://cs9621.notMySite.com/u7397474/c_b51d9fe6.jpg. A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.
I monitor (and log to server) most user errors in our flash game. Quite frequently I see security errors related to trying to make requests to a cross-domain URL (usually the Facebook Graph API). 99% of our players can make these graph API calls with no issues.What I think is going on is that the client makes a request, but fails to load the crossdomain.xml file. I don't quite know how AS3 handles this in the case of a failure to load the crossdomain policy file...will it retry for every URLRequest made until it succeeds in loading it, or does it just give up forever?
I'm really sick and tired of facebook's crossdomain.xml , finally got it working for loading pictures from the server. Now I need to load variables from my app using flash. I'm getting this error.
I'm loading in profile images from both facebook and twitter into a flex application. Based on the answer from this question, I'm loading the domain policy from the redirected url. However, now I'm seeing this error: Error: [strict] Ignoring policy file at [URL] The crossdomain.xml file from that URL looks like this:
[Code]...
The error states that there is a missing Content-Type. How do I get around this? I, obviously, can't update facebook's files.
I making a game leaderboard on facebook. I'm not using f-connect but working inside the canvas. When I try to load the images from facebook it gives me the following error:A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.Here is my loader code
public var preLoader:Loader; preLoader=new Loader(); **update**
I am making a game leaderboard on facebook. I'm not using f-connect but working inside the canvas. When I try to load the images from facebook it gives me the following error[code]....
I'm trying to display some Facebook video thumbnails in a Flash application, all of the video thumbnails I try to load seem to be hosted at [URL]. However [URL] cannot be loaded (Access Denied). Is there some way around this? (other than loading the images through a proxy). Maybe an alternative url which can be used?
I making a game leaderboard on facebook. I'm not using connect but working inside the canvas. When I try to load the images from facebook it gives me the following error.
SecurityError: Error #2122: Security sandbox violation: Loader.content: http://test cannot access http://profile.ak.fbcdn.net/v22941/254/15/q652310588_2173.jpg A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.
We're building an app that loads a user's photos from facebook. It seems facebook hosts these images across multiple hosts. Is it possible to dynamically add a cross domain policy, after a Security sandbox violation has occurred?
I making a game leaderboard on facebook. I'm not using f-connect but working inside the canvas. When I try to load the images from facebook it gives me the following error:
SecurityError: Error #2122: Security sandbox violation: Loader.content: [URL] A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.
Here is my loader code
public var preLoader:Loader; preLoader=new Loader(); **update** Security.loadPolicyFile('http://api.facebook.com/crossdomain.xml');
[code]....
something ( I have made sure the pictures are static and do not require a facebook login or anything , they are just user public profile pictures)
I basically have a movie clip on one server and swf clips on a different server, and I am loading them using the loadMovie command.my problem is: on those movie clips I am loading, I have a stop(); action on the first frame, and I am triggering them to play when loaded by the containerMovie.play(); commandmy problem is: if both parent movies and loaded movie are on the same server, the action works fine and the movie is played on when the frame with the play action is reached.if they are on different servers, the movie is loaded alright (you can saee the first frame) but the action does not get executed and the loaded movie does not playexamples:[URL]
I had a somewhat weird setup for a site here, which goes as follows: Server A holds a SWF Server B holds a HTML document with the SWF Embedded, along with SwfAddress.js I can't seem to get any Flash-to-javascript to work here through External Interface calls. SwfAddress fails and I see this error in Firebugs Console: "Error calling method on NPObject!" This also occurs with another JS function I'm trying to call with the MouseWheel. I've set up my crossdomains and deployed all Security.allowDomain("")'s where applicable. Has anyone embedded an external SWF and had issues with AS-JS communication before??
I'm trying to talk to a fully RESTful api of my own creation. The api is up and running but flash does not support PUT and DELETE, and does not recieve http status codes properly, plus a whole load of other issues with flashes anaemic http support.
To get around this I am trying to use as3httpclientlib. A 3rd party as3 http library, that uses socket connections to access the whole http protocol properly. It's a great library, unfortunately because it uses sockets flash requires implementation of the socket policy file, even though the access is all via port 80, the standard http port.
[URL]
This has given me a real headache. I can't implement the port 843 policy server as the documentation suggests because it's out of my ability level i feel. Also when the client is running it may be behind a corporate firewall that doesn't allow 843 access, so serving the policy file via the standard port seems the way forward. This is where I am stuck.
The policy file documentation says this shouldn't matter as if you cant access 843 because of your firewall you'll be unable to access non standard ports anyway, but I am accessing standard ports, only via sockets instead of URLLoader.
In the root of my server I have placed the following policy file:
Code: <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy>
I have a SWF on that reads in XML URL's to images on sit. They wont load once the flash file is posted online.I am trying to understand the cross domain policy stuff but am confused? Some say the crossdomain.xml is supposed to reside on my site, others say the site I am trying to access. If the later is true I don't know to get them to add itAlso, what exactly is in the crossdomain file? One person said to redirect the policy
How do I specify files to be accessed only in a specific folder via a crossdomain? <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "[URL]"> <cross-domain-policy> <site-control permitted-cross-domain-policies="[URL]"/> <allow-access-from domain="*.newdomain.com" secure="true" /> </cross-domain-policy>
Last time I worked with flash sockets I knew that a policy file is required only if the swf file is embedded in a different domain from the one where the socket connection is about to be made. Did newer version of flash player changed this, so now they'll alk for a policy file no matter what?
I'm doing a Flash Banner for an ADv campaing. Since the max swf file size allowed is very low, I'm trying to load external JPG images from the main server.Reading the crossdomain policies for Flash movies I see that:You cannot load variables or XML data into a Flash movie from another domain.
It's the same with static files as Jpg images?I'm testing the banner with various results: looking in Firebug, images are always loaded, but sometimes they appear, sometimes not, sometimes only the first time (it's a loop). There are no warnings however.
Loading the Banner with the same domain as the static images always works.I also tried to put a crossdomain.xml file on the domain that serves the static images, but problem seems to continue (maybe Flash cache that request somewhere..
I am having trouble loading .swf files to my flash app off my cloudstorage account on azure. images and videos load fine but .swf files return this error:
SecurityDomain 'http://localhost/' tried to access incompatible context 'http://[---].blob.core.windows.net/content/swf/Lib_En.swf'
I want to create flash banner with XML content, and host it on my site with crossdomain.xml, and then share banner code with other sites for banner exchange.So, everything is on my server.Will loading banner, on other sites, load XML from my server, if both banner and XML resides on the same server, but banner is loaded on the other site?
I want to get the index of the image currently in the center of the carousel and then I want to use this index number in other classes but it has to stay updated each time.Isuccessfully managed to get the index of the image that is currently being clicked on (this image will then be moved to the center of the carousel so as long as one always clicks on an image at the start, my method will work ) but I dont know how to allow other classes to access this. I tried saving it as a static var and then trying to access it by using the following:
private var coverIndex : int = CoverFlow.selectedCoverIndex;
But I receive the error msg that selectedCoverIndex is not available to static class CoverFlow or something of that sort. This is what my CoverFlow code looks like (i.e. where I determine which image I want to position in the center):
public class CoverFlow extends Sprite { public var covers : Vector.<DisplayObject>; private var cover : DisplayObject;[code].............
I am getting a mysterious result when trying to load profile images from a logged in Facebook user's friends list into an as3 canvas app. In pretty much every (non-facebook) application I've made where loading an image is required I use the following:
private function loadPic():void { var url:String = Facebook.getImageUrl(_friendslistObjectArray[_loadCount].id); _picLoader = new Loader();[code]............
I can't retrieve the image from the event object,and I am given no error at all.It all just fails silently.If I remove the line var image = evt.target.content, the process runs through the whole array.I can't think of any reason this would occur. Furthermore, if I look in firebug's net activity, I see I see the images get loaded as long as I do not have the line I just mentioned included. I just can't seem to get the image data from the event object to add it to stage or a container movieclip.
I have a program in which I am running a number of for loops which are doing a number of different things.I pull in data from an xml file and then step through that data to dynamically create arrays, populate the arrays, and create and modify movie clips.
The program I'm building is similar in scope to one I developed in Director many years ago, and in that environment we had to actually put breaks in using timers to ensure that the data would be processed and that the system wouldn't choke.
What I'm seeing with this flash version of the application is similar and I suspect the same. Basically, when navigating from the frame where the scripts are processed to the frame where the movie clips are displayed, there are times when it works perfectly and times when things are out of whack. I put in a 5 second delay (arbitrarily) to see if this would resolve the issue and on my system at least it does. But I need some advice on coming up with a real solution.
I'm currently building an application using the Adobe Facebook API and I've run into an issue where for the login method the Facebook login popup displays but when doing a Facebook share/post the popup is blocked.
This code works fine and displays me a Facebook login popup without question (Firefox):