Мы перенаправляем пользователей на указанный ниже URL на мобильных телефонах для авторизации приложений:
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-сайте (телефон Nokia) он без проблем перенаправит на диалог oauth после входа в систему.Но на сенсорном сайте (iPhone) он добавляет хэштеги к URL, перенаправляет пользователя на его домашнюю страницу Facebook.
Даже параметр display = wap на URL не помогает в этом вопросе.
Есть идеи, как решить эту проблему?
Спасибо
На самом деле, вот более чистое решение.(Я не видел API для getLoginUrl во время моего предыдущего поста. 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");
У меня возникла та же проблема, и у меня возникли проблемы с ее изоляцией, поскольку она работала в Chrome на рабочем столе, но не при использовании браузера Safari на iPhone.
Я сделал urlencode вокруг параметра redirect_url и установил сенсорный экран.Чтобы использовать вашу ссылку выше в качестве примера, я бы попробовал это:
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
Я искренне надеюсь, что это работает для вас.Казалось, это принесло мне удачу.