1

我在需要 facebook 访问的页面之间传递数据时遇到问题。

这是一个简单的示例:
第 1 页 - 有数据 ({str:"123"}) (但仍然没有获得 facebook 访问权限)
然后它重定向到 facebook_authentication 重定向到 redirect_uri (第 2 页)
第 2 页 - 需要从第一页获取数据,但它被 facebook auth 对话框打断。(第 2 页需要 facebook 访问才能提交 str 数据)。

有什么方法可以将数据从第一页通过身份验证对话框传递到第二页?
像这样:auth_url..parameters..?str=123 然后我会在第 2 页得到它,就像这样 $_GET['str'];

4

2 回答 2

1

我们在 oAuth 流程实现过程中遇到的同样的问题,两种可能的解决方案是

  1. 将您的数据保存在第 1 页的 cookie 中并在第 2 页读取 cookie。
  2. 其他解决方案是将数据放入会话中。


如果是用户特定的数据,我会建议使用 1。

于 2012-06-26T14:46:28.587 回答
1

我写了一个在 facebook 上运行过的应用程序,也不得不处理这个问题。我用过这样的东西

$sAppId = '12345567999455';

$sFBUrl = 'http://www.facebook.com/pages/<name>/<id>?sk=app_<app_id>&app_data=key:val;key:val';

$sDialogUrl = 'https://www.facebook.com/dialog/oauth?client_id=' . $sAppId . '&redirect_uri=' . urlencode($sFBUrl)

echo "<script>top.location.href='" . $sDialogUrl . "'</script>";   

然后解析数据

$aAppData = explode(';', $aSignedRequest['app_data']);

这为您的案例带来了解决方案

https://www.facebook.com/dialog/oauth?client_id=app_id&redirect_uri=your_url?str=123

在我的上一个应用程序中,我使用了我在这里解释的技巧:SSO Website-Network with Facebook Login

问候

于 2012-06-26T14:49:44.070 回答