我有一个问题,如果我没有登录我的 facebook 帐户,我可以看到(即使如此)我的应用程序,并写下它的 url。换句话说,facebook上的“匿名用户”可以看到我的应用程序。
我所知道的是,如何防止没有登录的用户看不到我的应用程序并被重定向到登录 Facebook?
我可以配置自己的 Facebook 应用程序吗?还是应该使用 SDK 或 JS Facebook 对其进行编程?任何人都可以推荐一个页面或示例如何做?
注意:我的应用程序使用 PHP 和 CodeIgniter。
如果其他用户看不到该应用程序,您几乎可以肯定忘记将该应用程序退出沙盒模式或对其进行人口统计限制 - 在应用程序设置中更改它
{编辑:您已将问题编辑为几乎与以前相反
PHP 示例应用程序包含用于检查当前用户是否使用您的应用程序的代码,并且在这种情况下您可以执行不同的操作(包括重定向到身份验证对话框)
在我看来,您没有正确使用 SDK 来检查用户是否已登录。然后您基本上需要将您的内容包装在 if-else 语句中。我不知道您是否正在使用 codeigniter 插件,但在 php-sdk 中,用最简单的术语来说是这样的:
include "facebook.php";
$facebook = new Facebook(array("appId"=>YOUR_APP_ID, "secret"=>YOUR_SECRET));
$me = $facebook->getUser();
$user = false;
if($me){ // still try and get user as getUser could return valid result
try{
$user = $facebook->api('/me');
catch(facebookAPIException $e){
$user = false;
$me = false;
}
}
if($user){ // display your content here
}else{// user not logged in
header("Location:".$facebook->getLoginUrl());
}
上面的例子是最简单的形式,但是关于 php sdk 的信息在这里https://developers.facebook.com/docs/reference/php/您可以下载它来查看示例。正如我所说,这只是普通的 php,没有集成在 codeigniter 中,而且只是伪代码。如果您粘贴了一些代码,它可能有助于解决这个问题,特别是对于其他在 codeigniter 方面更有经验的人。但对我来说,听起来您并没有检查用户是否存在,也没有将您的内容转发或包装在一个阻止他们查看它的语句中。我不确定这在画布应用程序上是如何工作的,但我知道这适用于网站身份验证。如果这是您正在谈论的画布应用程序,您可以尝试检查您的应用程序的“经过身份验证的推荐”复选框,或者如果用户未被识别,则使用 JS sdk 重定向它们,类似于上面