【问题标题】:Facebook iFrame application: How to pass data from URL Query StringFacebook iFrame 应用程序:如何从 URL 查询字符串传递数据
【发布时间】:2011-03-11 15:47:18
【问题描述】:
我有一个带有图片库的 Facebook 应用程序。它内置于 Flex 4 中。
我想允许用户链接到特定的图像。
如何做到这一点?
我看到这样做的唯一方法是在 Facebook 页面 URL 中添加一个类似 &my_picture=asd.jpg 的 GET var,但我不知道如何从 iFrame 中读取它。
【问题讨论】:
标签:
apache-flex
actionscript-3
facebook
iframe
pass-data
【解决方案1】:
是的,您可以为此在查询字符串中添加一个参数:
http://app.facebook.com/yourapp?myparam=1234
然后,您的应用将被这样调用:
http://domainwhereyouhostyourapp.com/your_fb_app/index.php?myparam=1234
其他一些参数也由 facebook 传递,大多数与 auth 令牌等相关。它们以“fb_”为前缀以防止名称冲突。
在您的 index.php(或您正在使用的任何内容)中,读取您感兴趣的 get 参数,然后像往常一样将它们传递给您的 swf。
【解决方案2】:
Facebook 的优点还在于,它可以将您的 ../appname/{things-beyond-your-app-name} 之后的所有内容传送到您托管的 [server] URL...,因此即使是 .htaccess 也可以使用。 ;)
像这样……
http://apps.facebook.com/YOURAPPNAME/a/b/c.htm
对于托管在我的服务器上的应用程序:
http://example.com/APPSHOSTEDPATH/
并通过使用包含在我的托管位置的 .htaccess 文件中的这一单行:
http://example.com/APPSHOSTEDPATH/
.htaccess 文件包含(在其他标准中)行...
我可以这样写:
RewriteRule ^(.*)$ /myRedirectedPath/$1 [L,R=301]
所以如果这个人去:
http://apps.facebook.com/YOURAPPNAME/a/b/c.htm(如上例)
他们会呆在那里,他们会访问:
http://example.com/myRedirectedPath/a/b/c.htm
(很可爱,嗯?);)
有趣的东西...想让您知道除了 $_GET 的功能之外还有更多功能。