2011-07-19 49 views
7

我們利用我們客戶網站的各種頁面上的FB Like/Share功能。我們想要共享的每個頁面中,我們添加的meta標籤如下:Facebook分享/喜歡默認圖片,標題,說明文字

<head id="ctl00_Head1"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="Expires" content="0" /> 
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

    <!-- social sharing metadata --> 
    <meta property="og:title" content="Our Site Title" /> 
<meta property="og:description" content="A description to be used in the share dialog." /> 
<meta property="og:image" content="http://us.oursite.com/images/FB_ShareThumbnail_US.png" /> 

    <title>Our Page Title</title> 

    <!-- favicon --> 
    <!-- stylesheet and js links --> 
    <!-- inline js --> 
</head> 

此外,我們還顯示Facebook的圖形具有以下HREF:

<A href="http://www.facebook.com/sharer.php?u=http%3a%2f%2fus.oursite.com%2fOurPage.aspx%3fid%3d999&amp;t=Our+Site+Title" target=_blank><IMG src="/images/Facebook_icon_20x20.png"></A> 

客戶想一個標準圖片,標題,描述使用,無論實際的頁面\文章共享(「品牌控制」的種類)。我們目前已經使用我們的og:meta標籤來爲每個頁面/文章渲染相同的數據。

當用戶點擊「分享」功能時,他們沒有得到頁面/文章圖片,也沒有任何好的描述或標題(正如我以爲標籤應該提供的那樣)。

當前被共享的頁面可以被匿名用戶訪問,所以FB機器人可以訪問頁面。在meta標籤中指定的圖像也可供匿名用戶使用。第一個問題是爲什麼這種共享方式似乎沒有使用正確的默認共享?

接下來的問題是,下一個功能請求是使已認證的頁面能夠與相同的默認圖像,標題,說明共享。我從服務器的角度來看待這個問題,在那裏尋找FB機器人並將機器人重定向到一個「靜態」頁面,該頁面僅包含提取圖像,標題和描述所需的最小標記。我已經證明了這一點,它工作得很好。我只是覺得它可能有點複雜。想知道是否有一個「更好」或更「最佳」的方式來共享已認證的頁面,並讓共享功能知道我們的標準圖像,標題,說明?

在此先感謝!

更新: 我發現這個相關的Q/A在計算器上:Facebook Share doesn't show my description or my thumbnail

當我問「不知道是否有一個‘更好’或多個‘最佳實踐的研究’的方式來共享認證頁面,有份額功能知道我們的標準圖像,標題,描述??「,這是我談論的事物的類型。如果我可以通過querystring參數將所需的所有數據傳遞給Facebook sharer.php(並且這不會導致需要/採取Facebook刮板操作),那是理想的,那麼我不需要編寫任何服務器端邏輯來重新路由Facebook刮板。 我試着用上面提到的Q/A提供的Url,重新格式化我的數據,但沒有運氣。想知道這是否記錄在FB的某處?

回答

9

可能有很多原因,爲什麼它不使用提供的元數據,但除非您與我們分享代碼/網址,否則我們可以猜測可能是什麼問題。

  • 確保og元數據位於<head>標記內,因爲它不會在其他任何地方查找它們。如果您在<body>標籤或其他地方定義它們,它會忽略它們。
  • 如果在添加元數據之前網頁已被喜歡,則需要刷新Facebook爲該頁面提供的緩存,方法是向網址Facebook linter tool提供網址。

如果這兩個步驟都不能解決問題,請分享網址/代碼。

只要你關於認證頁面的問題發生了,你可以在頁面的公共非認證版本上添加元數據,而不檢查它是否實際上是Facebook,就像有人共享頁面一樣,無論查看共享是否有權訪問該網頁的用戶,信息都變爲公開。

+0

至於身份驗證問題去,我見過很多網站流行的非認證用戶的身份驗證對話框(或其他提示) ,但是將OG元標記用於經過認證的用戶將看到的內容(即,無論用戶是否可以看到整個內容,都會提供相同的元標記) – Igy

+0

彈出窗口在這裏不起作用。問題在於提取數據的Facebook「bot」不知道如何進行身份驗證(我也不應該期望它......)。因此,當機器人嘗試訪問該頁面時,它可能會收到401,並且無法提取默認圖像,標題和說明。 – Brian

+0

@Brian你是否嘗試了我提到的2個步驟,它解決了什麼問題? – Niklas

4

經過一番進一步的挖掘,我找到了一種方法來處理「sharer.php」功能,以準確指定我想顯示的圖像,網址,標題和描述,而不依賴於OG元標記。這將適用於匿名訪問的頁面和需要經過身份驗證的用戶的頁面。鏈接的StackOverflow Q/A(http://stackoverflow.com/questions/2950189/facebook-share-doesnt-show-my-description-or-my-thumbnail)讓我朝着正確的方向前進,然後經過一些挖掘,通過搜索「sharer.php」在Facebook開發者論壇(http://forum.developers.facebook.net/)中發現了其他一些帖子。這一個特別讓我到我需要的地方:http://forum.developers.facebook.net/viewtopic.php?id=101127

實質上,沒有必要的OG元標籤。只要確保你的URL的碎片被正確編碼,您正在使用正確的參數鍵(即「& P [標題] =」而不是「& T =」。

從我們的網站中刪除OG meta標籤後/頁,我還修改了我們的Facebook分享按鈕/鏈接呈現以下標記:

<a href="http://www.facebook.com/sharer.php?s=100&amp;p[title]=Our+Site+Title&amp;p[url]=http%3a%2f%2fus.oursite.com%2fdefault.aspx&amp;p[images][0]=http%3a%2f%2fus.oursite.com%2fimages%2fFB_ShareThumbnail_US_90x85.png&amp;p[summary]=Our+facebook+description+that+is+used+on+the+FB+share+page." target="_blank"> 
    <img src="/images/fb_icon_20x20.png" /> 
</a> 

請注意,我是很想調查我是否能找到讓我指定一個默認的「消息」的參數,但這對我們來說不是必需的,所以也許稍後我會去挖掘這些信息。

+0

我對能夠指定「消息」參數感興趣。任何人都可以在此找到任何信息另外,有沒有一種方法可以使用這種方法,並仍保留共享書籤的標準「彈出」行爲? –

+0

這似乎不再有效。在解決方案失敗之後,經過一段時間的討論之後。唯一可以成功傳遞給它的URL。 – Swordfish0321

相關問題