2014-07-17 33 views
3

我陷入了一個問題。Yii登錄發佈在Facebook共享內容

我有一個Yii購物車僅面向註冊用戶。我在其中添加了一個Facebook分享按鈕。
但是,當我分享任何產品時,我無法獲得產品圖像或任何細節。
相反,我從登錄頁面獲取詳細信息。

我檢查了facebook調試工具(https://developers.facebook.com/tools/debug)中的鏈接。
這表明

  • 擷取的URL作爲原始URL(網址爲共享和獲取的 內容)
  • 規範的網址爲/用戶/註冊

好像在產品頁面進行檢查,但被重定向到登錄頁面,從登錄頁面調用詳細信息,如 og:url,og:type,og:title,og:image等。

是否有任何方法來保持身份驗證,並允許Facebook分享細節? 我認爲這個問題可以通過Yii編碼本身來解決。

感謝您提前。

+1

這是更好地保持產品的詳細信息頁面可以通過Guest用戶還 –

+0

我想這將是唯一的解決辦法來查看。謝謝@ramamoorthy_villi –

回答

0

這是在Facebook上共享的工作原理:

當你在Facebook上分享,Twitter或任何這樣的服務的鏈接,服務爬共享網頁網址獲取元數據。

當您共享一個只能通過身份驗證的用戶訪問的URL時,抓取工具無法訪問您的網址。在Yii Framework中,請求會自動重定向到登錄頁面,這是抓取工具在您的案例中將會看到的內容。

下面是我們如何解決它在我們以前的應用程序之一:

增加了對特定頁面客人觀點不同的動作和重定向從主要的行動給客人視圖操作任何非認證的請求。來賓視圖操作與主要操作類似,只是用戶無法在此處執行任何操作。

例子:

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. 
}