facebook php签名请求和移动网络的oauth重定向

时间:2013-11-02 09:21:07

标签: php facebook

我在重定向uris,签名请求和移动网络Facebook应用程序方面存在问题,我只是不知道我在搞砸这个问题。

我在example.com上有一个运行应用程序的画布应用程序,该应用程序使用已签名的请求来获取其用户数据。我决定推出移动版本,以便我的移动用户可以使用该应用程序,因此我创建了一个新目录example.com/m并制作了移动版本。

目前正常的应用程序运行正常,但一旦用户允许oauth权限,移动应用程序就陷入了无限循环。我尝试过尝试不同的URL,但我还没弄清楚。对于移动设备,签名请求为空,我无法弄清楚原因。

在我的Facebook设置中,我将此设置为画布网址: example.com 这设置为移动网址 example.com/m

在我的普通浏览器应用程序中,我使用以下代码从Facebook获得誓言:

$redir = "https://apps.facebook.com/example";
if(isset($_REQUEST["signed_request"]))
{
  $signed_request = $_REQUEST["signed_request"];
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
  $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
}

if (empty($data["user_id"]))
{
    $fb -> go("https://www.facebook.com/dialog/oauth?client_id={$app["appid"]}&redirect_uri=$redir&scope={$app["permissions"]}&response_type=token");
    exit;
} else 
{
    $fb -> access_token = "access_token=" . $data["oauth_token"];
}

这段代码工作正常,在我的移动版本中我有这段代码(我在这里和那里尝试了很多不同的网址,但仍然无法解决这个问题)

$redir = "https://apps.facebook.com/example/m";
if(isset($_REQUEST["signed_request"]))
{
  $signed_request = $_REQUEST["signed_request"];
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
  $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
}


if (empty($data["user_id"]))
{
    $fb -> go("https://www.facebook.com/dialog/oauth?client_id={$app["appid"]}&redirect_uri=$redir&scope={$app["permissions"]}&response_type=token");
    exit;
} else 
{
    $fb -> access_token = "access_token=" . $data["oauth_token"];
}

0 个答案:

没有答案