Признавая, что аутентифицированный реферальный механизм в настоящее время не работает с настройками мобильных веб-приложений для приложений Facebook, я m столкнулся с проблемой проверки токена доступа на основе возвращенного кода.
URL-адрес, для которого я пытаюсь получить токен доступа: https://staging.fanhood.com/facebook/mobile/challenge?fh_gameChallengeID=2678&ref=web_canvas&refid=9&refsrc=http://apps.facebook.com/fanhood-dev/challenge&returned=true
Это URL-адрес, на который отправляется посетитель после предварительной аутентификации с этого URL-адреса: http://apps.facebook.com/fanhood-dev/challenge?fh_gameChallengeID=2678. Однако, в отличие от обычных аутентифицированных рефералов, в URL-адрес не передаются дополнительные данные, поэтому приложение может сократить цикл перенаправления oauth.
На данный момент я перенаправляю посетителя в диалоговое окно мобильного OAuth для аутентификации: http://m.facebook.com/dialog/oauth?client_id=250258605018414&redirect_uri=https%3A%2F%2Fstaging.fanhood.com%2Ffacebook%2Fmobile%2Fchallenge%3Ffh_gameChallengeID%3D2678%26ref%3Dweb_canvas%26refid%3D9%26refsrc%3Dhttp%3A%2F%2Fapps.facebook.com%2Ffanhood-dev%2Fchallenge%26returned%3Dtrue&scope=email%2Cfriends_about_me%2Cfriends_education_history%2Cfriends_hometown%2Cfriends_interests%2Cfriends_likes%2Cfriends_location%2Coffline_access%2Cpublish_actions%2Cpublish_stream%2Cuser_activities%2Cuser_birthday%2Cuser_education_history%2Cuser_hometown%2Cuser_games_activity%2Cuser_interests%2Cuser_likes%2Cuser_location&response_type=кодидисплей=сенсорный»отн=
Когда пользователь перенаправляется обратно, я получаю код для обмена:
Код: AQBCH25OC57BiMBgj3rCKGhkFi0ypp0R8e2yKGwFfhml9x1B47-w2Baex8oZ3BKgb2NhziRnSIuJ1MV9hErKBUhu0YqxaonwFF_7mcqozwpy3Ch08rkNh-YEIa6HV_LHxl6pymfkAbQEMgSA6F4BdtINsCQ7QlLpcRwrZWkzxZVyJbJDnqOesB3zFLr5ohpgtpQ
Однако ни один из моих запросов на обмен этого кода в настоящее время не работает. Я пробую разные варианты формата redirect_uri, ни один из которых не работает:
Исходный URL как redirect_uri:
У меня есть механизм для удаления определенных параметров запроса, изменения их порядка в алфавитном порядке и повторной сборки, чтобы redirect_uris были согласованы между запросами. В этом случае redirect_uri точно соответствует тому, что было передано в URL-адрес диалога: https://staging.fanhood.com/facebook/mobile/challenge?fh_gameChallengeID=2678&ref=web_canvas&refid=9&refsrc=http://apps.facebook.com/fanhood-dev/challenge&returned=true == https://staging.fanhood.com/facebook/mobile/challenge?fh_gameChallengeID=2678&ref=web_canvas&refid=9&refsrc=http://apps.facebook.com/fanhood-dev/challenge&returned=true
Пустая попытка redirect_uri для аутентифицированных рефералов:
redirect_uri, структурированный как URL-адрес нашего мобильного холста:
redirect_uri структурирован как URL-адрес нашего холста:
Кто-нибудь знает, какой формат redirect_uri Facebook использует для мобильных запросов OAuth? А если параметры запроса поддерживаются? Этот же URL-адрес работает для нашего обычного приложения на основе холста, но не для нашей мобильной версии.