2012-10-25 33 views
4

我正在創建一個在線HTML5/Javascript測驗。我通過Facebook和Twitter分享測驗的結果。消息傳遞是通過Javascript創建的,「我剛剛得到了X條Y正確的問題」定製Google +分享文字(片段)

我想對Google Plus做同樣的事情。但是,看起來「片段」是由頁面上的schema.org,Open Graph或Title/Description標記生成的。這裏的文檔:https://developers.google.com/+/plugins/snippet/

我想我可以通過PHP中的查詢字符串參數動態生成這些標籤,但它看起來像Google緩存頁面。有任何想法嗎?

PHP:

<?php 
$correct = strval($_GET['correct']); 
$title = "I took the Quiz and answered " . $correct . " of 9 questions correctly."; 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <title><?php echo($title); ?></title> 
     <meta property="og:title" content="<?php echo($title); ?>" /> 
    </head> 
</html> 

我動態創建網址.../share.php正確= 4

但是,當我分享網頁,我看到消息:

I took the Quiz and answered of 9 questions correctly. 

它似乎沒有顯示動態數據。我假設是因爲Google緩存了該頁面?

謝謝

回答

3

+1按鈕和共享對話框確實使用緩存。片段獲取器應該遵守緩存控制指令,所以你應該能夠通過提供必要的頭來實現你要做的事情,以防止緩存。

在PHP中,下面的代碼將標題與必要的數據,以防止緩存:

<?php 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
?> 

別的東西,你可以考慮做太多,是插入一個隨機生成的ID爲查詢字符串參數,以便共享URL每次對於提取器來說都是唯一的。

希望有所幫助。

3

爲了我所知,加一按鈕緩存頁面。所以做fb like按鈕。 你可能想試試這個

https://plus.google.com/share?url=http://example.com/share.php?correct=4 

它有竅門。希望這可以幫助