我有一个问题,如果我没有登录我的facebook帐户,我可以看到(即使如此)我的应用程序,并编写它的url。换句话说,facebook上的"匿名用户"可以看到我的应用。
我所知道的是,我如何防止没有登录的用户看不到我的应用程序,并被重定向到登录facebook?
我可以配置我自己的facebook应用程序吗?还是应该使用SDK或JS Facebook进行编程?有人能推荐一个页面或一个如何做的例子吗?
注意:我将PHP与CodeIgniter一起用于我的应用程序。
在我看来,你没有正确使用SDK来检查用户是否登录。然后,你基本上需要将内容包装在if-else语句中。我不知道你是否使用了一个用于代码点火器的插件,但在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中,在很大程度上只是psuedo代码。如果你粘贴了一些代码,这可能有助于解决这个问题,尤其是对其他在代码点火器方面更有经验的人来说。但对我来说,这听起来像是你没有检查用户是否存在,也没有转发或包装你的内容,使他们无法查看。我不确定这在画布应用程序上是如何工作的,但我知道这适用于网站身份验证。如果这是一个你正在谈论的画布应用程序,你可以尝试为你的应用程序选中"经过身份验证的推荐"复选框,或者在用户未被识别的情况下使用JS sdk重定向,类似于上面的
如果其他用户看不到应用程序,你几乎肯定忘记了将应用程序从沙箱模式中取出,或者在人口统计学上限制了它-在应用程序设置中更改
{edit:你已经把你的问题编辑成与之前几乎相反的问题
PHP示例应用程序包含用于检查当前用户是否使用您的应用程序的代码,在这种情况下,您可以执行不同的操作(包括重定向到auth对话框)