Php Facebook共享内容中的Yii登录问题

Php Facebook共享内容中的Yii登录问题,php,facebook,yii,Php,Facebook,Yii,我陷入了困境 我有一个Yii购物车只为注册用户。我在其中添加了一个facebook共享按钮。 但是,当我共享任何产品时,我无法获得产品图像或任何详细信息。 相反,我从登录页面获取详细信息 我已经检查了facebook调试工具()中的链接。 它显示 获取的URL作为原始URL(用于共享和获取 目录) 规范URL为/user/login 似乎已选中产品页面,但已重定向到登录页面,其中的详细信息如下 从登录页面调用og:url、og:type、og:title、og:image等 是否有任何方法保

我陷入了困境

我有一个Yii购物车只为注册用户。我在其中添加了一个facebook共享按钮。
但是,当我共享任何产品时,我无法获得产品图像或任何详细信息。
相反,我从登录页面获取详细信息

我已经检查了facebook调试工具()中的链接。
它显示

  • 获取的URL作为原始URL(用于共享和获取 目录)
  • 规范URL为/user/login
似乎已选中产品页面,但已重定向到登录页面,其中的详细信息如下 从登录页面调用og:url、og:type、og:title、og:image等

是否有任何方法保持身份验证并允许facebook共享详细信息? 我认为这个问题可以在Yii编码本身内解决


先谢谢你

facebook上的共享就是这样工作的:

当您在Facebook、Twitter或任何此类服务上共享链接时,该服务会抓取共享页面URL以获取元数据

当您共享一个只有经过身份验证的用户才能访问的URL时,爬虫程序将无法访问您的URL。在Yii框架中,请求会自动重定向到登录页面,这是爬虫在您的案例中看到的页面

下面是我们在之前的一个应用程序中解决该问题的方法:

为特定页面的来宾视图添加了不同的操作,并将所有未经身份验证的请求从主操作重定向到来宾视图操作。来宾视图操作与主操作类似,只是用户不能在此执行任何操作

例如:

public function actionView(){
     if($isGues){
         //redirect to public function actionGuestview(){}
     }
     // Your Existing code to render the view file.
}
public function actionGuestView(){
     // Code to render the public view of the above action.
     // Make sure that the user cannot perform any actions here.
}

最好保持客户用户可以查看产品的详细页面,我猜这将是唯一的解决方案。谢谢@ramamoorthy_villi