Используя PHP-SDK, вы можете предполагать, что приложение работает на холсте, если у вас есть signed_request
в вашем $_REQUEST
/ $_POST
. Не совсем безопасно, но в большинстве случаев можно предположить, что это так ...
JS-SDK может сказать, что он не работает на холсте наверняка, только отметив window.top == window
не очень полезно, если вам нужно знать, что вы находитесь на холсте, а не просто чьим-то кадром.
Обновление:
Только что проверил, и есть лучший вариант в JS-SDK, чтобы проверить, работаете ли вы на холсте, но я не уверен, что это поведение не изменится в будущем. Вы можете использовать что-то вроде этого:
var pageInfo = FB.Canvas.getPageInfo();
var isInCanvas = (pageInfo && pageInfo.clientWidth == 0);