【发布时间】:2012-02-23 15:18:36
【问题描述】:
我开发了一个 facebook 画布应用程序,该应用程序向用户新闻源发布信息,我希望能够允许用户单击新闻源中的链接并被带到我的应用程序以及将在应用程序中显示的一些数据(例如通过在查询字符串中传递它)。
当我创建将发布在用户新闻源上的链接时,我将链接字段设置为 -
http://apps.facebook.com/myappname/?datatopass=mydata
这是可行的,当用户单击此链接时,浏览器会将他们定向到该链接。但是我无法访问 $_GET['datatopass'] 变量(使用 PHP),它似乎是空白的。我尝试使用 javascript 来输出 window.location 变量,但我没有看到我传递的查询字符串,即使我在浏览器地址栏中看到了上面的 url。我看到的是我在 facebook 开发者应用程序中设置的网站 url 以及 facebook 使用的 state 和 code 参数。它剥夺了我的 datatopass 参数,我希望在我的应用程序启动时能够读取该参数。
那么...我怎样才能传递我想要发送的数据?我知道如果您使用 signed_request 会有一个 app_data 字段,但据我了解,这仅适用于位于页面选项卡中的应用程序。我正在使用 iFrame 画布应用程序方法。
当我查看我的 apache 服务器的访问日志时,我可以看到我的站点 url 地址有一个带有附加查询字符串的 POST 条目 -
my.domain.com 123.456.7.890 - - [23/Feb/2012:14:21:19 +0000] "POST /facebookapp/?datatopass=mydata HTTP/1.1" 200 300 "http://apps.facebook.com/myappname/?datatopass=mydata" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
后跟一个 GET 条目 -
my.domain.com 123.456.7.890 - - [23/Feb/2012:14:21:20 +0000] "GET /facebookapp/directory/?state=99226fiawhoidhaoia09809a085d94832&code=ahfakshdlkfhalksj.... HTTP/1.1" 200 27094 "http://my.domain.com/facebookapp/?play=asd" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
抱歉,我不太明白上面的内容在做什么,但希望它能提供有用的额外信息来帮助回答这个问题。
【问题讨论】:
标签: php facebook get query-string