我有一個網站,基於用戶輸入使用PHP生成反饋,我想給人們選擇分享他們的反饋,但我不知道如何。如何使動態創建的內容可共享
我可以使用Open Graph並使用PHP填充元,但它看起來不太好,人們可能想分享網站而不是他們的反饋。
所以理想情況下,我希望能夠共享某種類型的HTML或動態生成的圖像。
Facebook的
似乎並沒有對此有什麼好的建議。
我寧願使用PHP或某種類型的Javascript來做到這一點。
謝謝!
我有一個網站,基於用戶輸入使用PHP生成反饋,我想給人們選擇分享他們的反饋,但我不知道如何。如何使動態創建的內容可共享
我可以使用Open Graph並使用PHP填充元,但它看起來不太好,人們可能想分享網站而不是他們的反饋。
所以理想情況下,我希望能夠共享某種類型的HTML或動態生成的圖像。
Facebook的
似乎並沒有對此有什麼好的建議。
我寧願使用PHP或某種類型的Javascript來做到這一點。
謝謝!
事實證明,要做到這一點的最好辦法是使用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);
?>
這是我發現的動態生成帶有文本的圖像的最佳方式。
我認爲這應該按照以下方式完成(而我沒有嘗試過)。 如Facebook給出了兩件事情的其中兩個在您的網頁首先是JavaScript代碼和第二個是HTML標記 樣本HTML標記以下一個
<div data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count"></div>
你必須改變與可變數據href屬性一樣$url
,它應該包含動態生成的網址 如果你想分享當前的網址你將使用超全局的$_SERVER
來構造它。
我已經試過這個,但我無法得到它的工作看來,無論Facebook只顯示當前頁面的OG元內容按鈕,所以我不知道該URL甚至做什麼,因爲它似乎沒有改變任何事情。另一個問題是FB不斷地緩存你的OG數據,你必須要求重新進行更新。任何其他想法? –
我認爲php imagecreate()實際上最終會成爲做這件事的最好方法,我會讓每個人都注意它的方式 –
爲什麼不動態填充OG標籤「看起來不錯」?如果你希望人們能夠分享他們自己的內容,那麼擁有個人OG元信息的單個URL是一個很好的方法。此外,他們仍然可以分享您的「主要」網站,如果需要 - 通過使用其網址,不包含單個參數。您的其他選項使用Feed對話框(允許指定標題,說明,運行時鏈接的縮略圖)或通過API發佈。 – CBroe
@CBroe我會願意解決OG問題,但另一個問題是FB會不斷緩存您的OG數據,並且您必須要求重新進行更新才能更新它,您知道如何解決此問題嗎?通過使用下面的答案,我沒有太多的運氣讓FB使用來自另一個URL的數據,它似乎只想使用當前頁面的OG數據,你能解釋一下你的方法嗎? –
爲什麼,你需要不斷更新?特定用戶對特定項目的反饋是否隨時間而改變?如果沒有,那麼用戶和項目的組合就有一個常量URL(包括引用這個特定組合的參數),然後只需要刮一次。 – CBroe