I have a Facebook application that has a picture gallery. It's build in Flex 4.
I want to allow users to link to a specific image.
How can that be done?
The only way I see this being done is adding a GET var like &my_picture=asd.jpg in the Facebook page URL, but I don't know how to read that from the iFrame.
Yes, you can add a parameter to the querystring for this:
http://app.facebook.com/yourapp?myparam=1234
Then, your app will be called like this:
http://domainwhereyouhostyourapp.com/your_fb_app/index.php?myparam=1234
Some other parameters are passed by facebook as well, most related to auth tokens, etc. They are prefixed by "fb_" to prevent name clashes.
In your index.php (or whatever you are using), read the get parameter you're interested in and pass them to your swf as usual.
What's great also about Facebook is that it carries EVERYTHING after your ../appname/{things-beyond-your-app-name}
to you hosted [server] URL... so that even .htaccess can be used. ;)
Like this...
http://apps.facebook.com/YOURAPPNAME/a/b/c.htm
For an app that's hosted on my server at:
http://example.com/APPSHOSTEDPATH/
and by using this one-liner included in my hosted location's .htaccess file in:
http://example.com/APPSHOSTEDPATH/
where .htaccess file contains (among the other standard) lines...
I can put something like:
RewriteRule ^(.*)$ /myRedirectedPath/$1 [L,R=301]
So if the person goes to:
http://apps.facebook.com/YOURAPPNAME/a/b/c.htm (as in the above example)
They'll stay there and they'll be accessing:
http://example.com/myRedirectedPath/a/b/c.htm
(pretty sweet, eh?) ;)
Fun stuff... wanted you to know that there's more capability that just $_GET
's.