Javascript 如何在Facebook画布应用程序中调用FB.ui?
我想创建一个Facebook登录的网站,通过简单的支付,用户可以购买虚拟商品 据我所知,Facebook支付系统(弹出窗口等)只适用于画布应用程序或手机。因此,我设置了我的应用程序名称空间和画布页面url,以便app.facebook.com/####包含我想要的页面 要检查用户是否已登录并已授予应用程序的基本权限,我有:Javascript 如何在Facebook画布应用程序中调用FB.ui?,javascript,facebook,canvas,sdk,payment,Javascript,Facebook,Canvas,Sdk,Payment,我想创建一个Facebook登录的网站,通过简单的支付,用户可以购买虚拟商品 据我所知,Facebook支付系统(弹出窗口等)只适用于画布应用程序或手机。因此,我设置了我的应用程序名称空间和画布页面url,以便app.facebook.com/####包含我想要的页面 要检查用户是否已登录并已授予应用程序的基本权限,我有: <?php $app_id = "###"; $canvas_page = "http://apps.facebook.com/###"; $auth_u
<?php
$app_id = "###";
$canvas_page = "http://apps.facebook.com/###";
$auth_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($canvas_page);
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["user_id"])) {
echo("<script> top.location.href='" . $auth_url . "'</script>");
}
else {
echo $data["user_id"];
}
?>
仅仅因为您使用的是PHP SDK并不意味着您不应该使用javascript SDK,因为事实上,它们是为一起使用而构建的,通过客户端和服务器端创建更好的连接
我使用javascript SDK来处理用户状态(已登录、应用程序是否已授权等),处理用户与facebook插件的对话和交互以及它们各自的响应,并处理用户操作引发的事件
在服务器端,我使用PHP SDK查询facebook或检索有关用户的信息,我也总是在服务器端验证用户。当然,在使用JS SDK的任何方法之前,您需要初始化JS SDK。在PHP生成的页面中使用JS有什么问题吗?只是想确认一下,这是否意味着我仍然需要使用JS SDK检查登录和权限,即使我在画布中,PHP会提示用户登录和权限?这本身并不是问题——我认为非功能性可能来自于“重复”检查。是的,你会这样做:“出于某种原因,在画布中似乎会阻止标准JS SDK工作。”——不,绝对不会。如果您已经在服务器端脚本中指示用户登录,则不必再次使用JSSDK执行登录流程FB.getLoginStatus
帮助您确定是否有有效的用户会话(需要时)。