2015-10-20 39 views
-2

我有一個網站,基於用戶輸入使用PHP生成反饋,我想給人們選擇分享他們的反饋,但我不知道如何。如何使動態創建的內容可共享

我可以使用Open Graph並使用PHP填充元,但它看起來不太好,人們可能想分享網站而不是他們的反饋。

所以理想情況下,我希望能夠共享某種類型的HTML或動態生成的圖像。

Facebook的

https://developers.facebook.com/docs/plugins/share-button

似乎並沒有對此有什麼好的建議。

我寧願使用PHP或某種類型的Javascript來做到這一點。

謝謝!

+0

爲什麼不動態填充OG標籤「看起來不錯」?如果你希望人們能夠分享他們自己的內容,那麼擁有個人OG元信息的單個URL是一個很好的方法。此外,他們仍然可以分享您的「主要」網站,如果需要 - 通過使用其網址,不包含單個參數。您的其他選項使用Feed對話框(允許指定標題,說明,運行時鏈接的縮略圖)或通過API發佈。 – CBroe

+0

@CBroe我會願意解決OG問題,但另一個問題是FB會不斷緩存您的OG數據,並且您必須要求重新進行更新才能更新它,您知道如何解決此問題嗎?通過使用下面的答案,我沒有太多的運氣讓FB使用來自另一個URL的數據,它似乎只想使用當前頁面的OG數據,你能解釋一下你的方法嗎? –

+0

爲什麼,你需要不斷更新?特定用戶對特定項目的反饋是否隨時間而改變?如果沒有,那麼用戶和項目的組合就有一個常量URL(包括引用這個特定組合的參數),然後只需要刮一次。 – CBroe

回答

0

事實證明,要做到這一點的最好辦法是使用php imagecreate()當你進入src=的圖像,你只需把GET值圖像的URL您呼叫

<img src="www.domain.com/myimage.png?textoverimage=customersname" /> 

但你會使用PHP創建url,這樣人們可以通過一個簡單的html表單提交他們想要的圖像值,就像這樣。

<form method="get"> 
    <imput type="text" name="customername" /> 
    <imput type="submit" /> 
</form> 

<img src='www.domain.com/myimage.png?textoverimage=<?php echo $_GET["customername"];?>' /> 

那麼php imagecreate()將這些值,並用它們把文本在圖像上,並從該點很容易使圖像共享。

現在,您可能正在使用調用<img />src中的圖像文件,但在這種情況下,您實際上會調用一個php文件,並且imagecreate()將從該php文件中生成所需的圖像。下面是php文件的樣子。

<?php 
// Set the content-type 
header('Content-Type: image/png'); 

// Create the image 
$im = @imagecreatefromjpeg("http://domain.com/imagefile.jpg"); 

// Create some colors 
$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 
//imagefilledrectangle($im, 0, 0, 399, 29, $white); 

// The text to draw 

$text = $_GET["textoverimage"]; 


$font = '/stocky.ttf'; 

// Add some shadow to the text 
imagettftext($im, 20, 0, 120, 170, $grey, $font, $text); 


// Using imagepng() results in clearer text compared with imagejpeg() 
imagepng($im); 
imagedestroy($im); 
?> 

這是我發現的動態生成帶有文本的圖像的最佳方式。

1

我認爲這應該按照以下方式完成(而我沒有嘗試過)。 如Facebook給出了兩件事情的其中兩個在您的網頁首先是JavaScript代碼和第二個是HTML標記 樣本HTML標記以下一個

<div data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count"></div> 

你必須改變與可變數據href屬性一樣$url,它應該包含動態生成的網址 如果你想分享當前的網址你將使用超全局的$_SERVER來構造它。

+0

我已經試過這個,但我無法得到它的工作看來,無論Facebook只顯示當前頁面的OG元內容按鈕,所以我不知道該URL甚至做什麼,因爲它似乎沒有改變任何事情。另一個問題是FB不斷地緩存你的OG數據,你必須要求重新進行更新。任何其他想法? –

+0

我認爲php imagecreate()實際上最終會成爲做這件事的最好方法,我會讓每個人都注意它的方式 –