Начиная с ... обновления 4-летнего приложения Canvas Facebook до последнего PHP SDK (4.0.23).Создание приложения Facebook Canvas - логин и валидация в PHP SDK
Как я понимаю, поток что-то вроде:
1) Facebook называет мое приложение (mydomain.com/myApp)
2) Мне нужно, чтобы определить, является ли эта учетная запись Facebook вошел в мой app уже - выглядит как signed_request встречается, если нет.
3) Я создаю FacebookRedirectLoginHelper с моим url приложения (mydomain.com/myApp), а затем создаю loginUrl. Затем пользователь должен щелкнуть по нему.
4) Facebook выдает запрос на разрешение и, если пользователь принимает, обращается к моему URL-адресу приложения. На этот раз вместо signed_request я получаю код. На этом этапе - снова ли я создаю FacebookRedirectLoginHelper для обработки моей сессии? Или, как предлагает документ PHP SDK, я создаю FacebookCanvasLoginHelper?
4a) Чтение кода для FacebookCanvasLoginHelper, кажется, что я должен вызывать $ helper-> instantiateSignedRequest ($ signedRequest), прежде чем я смогу его использовать, иначе там не будет подписанного запроса. Но подписанный запрос, который я получил в первый раз, не имеет в нем данных oauth, поэтому getSession() терпит неудачу.
4b) Если я использую FacebookRedirectLoginHelper, я получаю сеанс назад, но в нем нет signed_request. Поэтому я не могу получить идентификатор пользователя. Если я нажимаю signed_request, который у меня есть в объекте FacebookSession, все равно ничего, потому что у этого начального signed_request его нет.
Что мне здесь не хватает? Мне нужен идентификатор Facebook, который хранится локально, чтобы сообщить моему приложению, которое его запускает.
Помощь? Мысли? Я должен что-то упустить, потому что у других людей это работает, верно?
andy
Вы действительно должны рассмотреть вопрос об использовании JS SDK для целей входа в систему - это не нужно для перенаправления с холста, но просто накладывает диалоговое окно входа в систему на странице, что значительно улучшает работу пользователя. – CBroe
Хотя это вполне может быть хорошим вариантом для рассмотрения, это не помогает мне решить текущую проблему - это делает работу PHP SDK.Спасибо, я займусь этим, когда получу несколько запасных циклов. –