在移动触摸网站上登录问题后,Facebook oauth对话框重定向

时间:2011-09-27 09:31:37

标签: facebook mobile facebook-authentication

我们将用户重定向到手机上的以下网址以进行申请授权:

https://m.facebook.com/dialog/oauth?client_id=XXXXXX&redirect_uri=http://www.server.com/callback.php&scope=offline_access,user_likes,publish_stream,publish_checkins,user_checkins&display=wap

如果用户在他/她的手机上登录Facebook,没问题,Facebook会自动重定向到oauth对话框页面。

如果用户未登录,Facebook会要求他们先登录。
在wap站点(诺基亚手机)上,它在登录后重定向到oauth对话框,没有任何问题。 但是在触摸网站(iPhone)上,它会向网址添加hastags,将用户重定向到他/她的Facebook主页。

即使display = WAP上的wap参数也无法解决此问题。

关于如何解决这个问题的任何想法?

谢谢

2 个答案:

答案 0 :(得分:1)

实际上,这是一个更清洁的解决方案。 (我在上一篇文章时没有看过getLoginUrl的API。http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl

require_once("facebook.php");

$config = array(
    "appId" => APP_ID,
    "secret" => APP_SECRET
);

$facebook = new Facebook($config);

$params = array(
    "scope" => "offline_access,user_likes,publish_stream,publish_checkins,user_checkins",
    "redirect_uri" => "http://www.server.com/callback.php",
    "display" => "touch"
);

$url = $facebook->getLoginUrl($params);

header("Location: $url");

答案 1 :(得分:0)

我遇到了同样的问题并且因为它在桌面上的Chrome中工作而在使用iPhone的Safari浏览器时没有用来隔离它有麻烦。

我在redirect_url参数周围做了一个urlencode,并将display设置为touch。所以以上面的链接为例,我试试这个:

https://m.facebook.com/dialog/oauth?client_id=XXXXXX&redirect_uri=http%3A%2F%2Fwww.server.com%2Fcallback.php&scope=offline_access,user_likes,publish_stream,publish_checkins,user_checkins&display=touch

我衷心希望能为你效劳。这似乎给我带来了好运。