Php 如果会话设置在codeigniter中,Facebook无法抓取我的url
我使用addthis进行共享,框架是代码点火器 问题是,若在我的控制器中我检查了会话,那个么facebook就无法抓取我的url。若我删除了会话,那个么它就工作了。那么,我可以如何使用session进行fb共享呢 以下代码正在运行:Php 如果会话设置在codeigniter中,Facebook无法抓取我的url,php,codeigniter,session,facebook-graph-api,Php,Codeigniter,Session,Facebook Graph Api,我使用addthis进行共享,框架是代码点火器 问题是,若在我的控制器中我检查了会话,那个么facebook就无法抓取我的url。若我删除了会话,那个么它就工作了。那么,我可以如何使用session进行fb共享呢 以下代码正在运行: 控制器 public function index() { $this->load->view('client/home'); } 如果我检查会话,则fb共享不起作用: public function index() { if(!$t
控制器
public function index()
{
$this->load->view('client/home');
}
如果我检查会话,则fb共享不起作用:
public function index()
{
if(!$this->session->userdata('client_id'))
{
redirect('client/login/index', 'refresh');
exit;
}
$this->load->view('client/home');
}
提前谢谢
旁注:我在客户登录网站时设置会话。因此,当客户单击FB共享按钮时,会话已设置。请尝试此代码的修改版本:
public function index()
{
if(!$this->session->userdata('client_id') && !strstr( $_SERVER['HTTP_USER_AGENT'], 'facebookexternalhit') )
{
redirect('client/login/index', 'refresh');
exit;
}
$this->load->view('client/home');
}
我添加了一个条件,检查用户代理是否是Facebook scraper(
facebookexternalhit
)。如果用户代理不是Faecebook,它将强制登录。(请记住,用户代理可能被欺骗)。如果它检测到Facebook,它将加载该页面并允许Facebook正确抓取内容。谢谢您的帮助。这是有用的。