2010-03-08 31 views
50

可能重複:
How does Facebook Sharer select Images?想自定義標題/圖像/在Facebook共享鏈接從一個Flash應用程序描述

我想提出一個Flash應用程序,在駕駛時展示potensial交通傷害不同的速度。我希望用戶能夠在Facebook上分享這些信息。然而,這要求我可以自定義以某種方式出現在Facebook上的文本。

我提出了在一個空白的窗口中打開一個URL(從閃存應用程序本身)。我指定了u和t參數,將生成的消息作爲t參數。但是這似乎總是被頁面標題覆蓋。如果我從html代碼中省略標題標籤,則使用文件名(也覆蓋指定的標題)。

 
http://www.facebook.com/sharer.php?u=http://espentokerud.com/face/addiste.html&t=test; 

我也試過網址編碼的網址,但無濟於事。

 
http://www.facebook.com/sharer.php?u=http%3a%2f%2fespentokerud.com%2fface%2faddiste.html&t=test; 

我也嘗試過使用addthis API,但經驗相同的缺點。有趣的是,如果我發佈swf,標題和描述可以自定義,並且還可以指定屏幕截圖。但如果我不發佈瑞士法郎,這似乎被忽略。

我知道我可以使用HTML網頁的meta標籤指定的縮略圖,標題和描述,但某些內容必須基於對Flash應用程序內的計算。

+0

我也遇到了這個問題,並且會對解決方案非常感興趣,因爲它似乎是反直覺,它會在您專門給它參數後重置它們! – stealthcopter

+0

我被困在相同的問題要放一個賞金 – Rodrigo

+0

@stealthcopter,@Rodrigo你不能,你需要在目標頁面的元數據。也就是說,你可以解決它,檢查我的答案。 – eglasius

回答

2

我其實也有類似的問題。我有一個有多個單選按鈕的頁面;每個按鈕都會通過改變後的JavaScript來設置頁面的標題和描述元標籤。

例如,如果用戶選擇第一個按鈕,meta標籤會說:

<meta name="title" content="First Title"> 
<meta name="description" content="First Description"> 

如果用戶選擇第二個按鈕,這改變了元標記:

<meta name="title" content="Second Title"> 
<meta name="description" content="Second Description"> 

。 .. 等等。我已經確認代碼通過Firebug工作正常(即我可以看到這兩個標籤已被正確更改)。

顯然,Facebook Share只吸入了可在網頁加載時的標題和描述meta標籤。頁面加載後對這兩個標籤的更改完全被忽略。

有沒有人有任何想法如何解決這個問題?也就是說,強制Facebook獲得頁面加載後發生更改的最新值。

+1

您發送給臉書的網址必須包含選擇返回到您的網站的選項。使用它來確保在頁面加載時加載值。有關如何解決問題的更多信息,請參閱我的答案。 – eglasius

+0

好的解決方案eglasius, – defines

0

你不能,它只是不支持它。

我要問,爲什麼這些計算需要的Flash應用程序內只發生?

您必須導航到明確涉及到你的Flash應用程序獲得元數據的URL。否則,Flash應用程序將如何知道取決於您所點擊的URL的值。

選項包括:頁面上

  • 計算:服時,你需要做的服務器上那些相同的計算和發送標題等頁面的元數據的頁面。
  • 將查詢字符串中的元數據發送到您的網站:如果您確實必須將計算關閉在服務器上,另一個竅門是在用戶點擊從Facebook訪問您的網站的URL中明確設置元數據。處理頁面時,只需將其複製回元數據部分(不要忘記進行適當編碼)。由於url大小限制,這顯然是有限的。
  • 發送的查詢字符串中的計算結果到您的網站:如果這些計算只是給你,在元數據中使用了幾個數字,你可以只包括在URL中的查詢字符串的用戶點擊回您的網站。這很可能不會給您帶來網址大小的問題。

重新

這是爲什麼upvoted?這是不對的。你可以 - 它支持添加自定義標題,描述和圖像到你的共享。我一直這樣做。 - 達斯汀Fineout 2小時前

的OP非常明確表示,他已經知道你可以成爲從一個網頁,而是想直接值傳遞給Facebook(不通過目標頁面)。

另外,請注意,我給出了3個不同的選項來解決這個問題,其中之一就是您稍後發佈的答案。你的選擇不是OP如何去做,它只是一個解決方法,因爲facebook的限制。

最後,就像我一樣,你應該提到特定的解決方案是有缺陷的,因爲你可以很容易地達到URL大小的限制。

+0

爲什麼這個upvoted?這是不對的。你可以 - 它支持添加自定義標題,描述和圖像到你的共享。我一直這樣做。 – defines

+0

@Dustin在投票前閱讀;)。在我的回答中看到我的回覆 – eglasius

+0

我完全閱讀,他們都是很好的建議,正如我在我以前的評論中說的!事實上,它們在某種程度上都是以我自己的答案展示的。我不同意你的答案:「你不能,它只是不支持它」,這是不正確的,恰好是你答案的第一行。 – defines

4

一個星期前我有同樣的問題。

首先我注意到你的URL在參數字符串前有一個&符號,但它可能需要有一個問號來代替開始參數字符串,然後是每個附加參數之間的和號。現在

,你需要逃避你的網址,而且雙逃生(您需要提供在共享內容標題或其他內容)要傳遞到URL中的URL參數,如下所示:

var myParams = 't=' + escape('Some title here.') + '&id=' + escape('some content ID or any other value I want to load'); 
var fooBar = 'http://www.facebook.com/share.php?u=' + escape('http://foobar.com/superDuperSharingPage.php?' + myParams); 

現在,您需要創建上面鏈接的superDuperSharingPage.php,它應該提供您所需的動態標題,描述和圖像內容。像這樣的東西應該足夠了:

<?php 
    // get our URL query parameters 
    $title = $_GET['t']; 
    $id = $_GET['id']; 
    // maybe we want to load some content with the id I'll pretend we loaded a 
    // description from some database in the sky which is magically arranged thusly: 
    $desciption = $databaseInTheSky[$id]['description']; 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title><?php echo $title;?></title> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <meta name="title" content="<?php echo $title;?>" /> 
    <meta name="description" content="<?php echo $desciption;?>" /> 
    <!-- the following line redirects to wherever we want the USER to land --> 
    <!-- Facebook won't follow it. you may or may not actually want || need this. --> 
    <meta http-equiv="refresh" content="1;URL=http://foobar.com" /> 
</head> 
<body> 
    <p><?php echo $desciption;?></p> 
    <p><img src="image_a_<?php echo $id;?>.jpg" alt="Alt tags are always a good idea." /></p> 
    <p><img src="image_b_<?php echo $id;?>.jpg" alt="Make the web more accessible to the blind!" /></p> 
</body> 
</html> 

讓我知道這對你的作品,它的本質是什麼爲我做了:)

+0

太好了,謝謝。這種雙重逃脫的想法爲我節省了很多時間。 – hudolejev

60

2016更新

使用Sharing Debugger找出你問題是。

確保你關注的是Facebook Sharing Best Practices

請確保您正確使用Open Graph Markup

原來的答案

我同意已經在這裏說,但per documentation on the Facebook developer site,您可能需要使用下面的meta標籤。

<meta property="og:title" content="title" /> 
<meta property="og:description" content="description" /> 
<meta property="og:image" content="thumbnail_image" /> 

如果你無法與meta標籤來實現你的目標,你需要一個URL的嵌入式版本,請參閱@ Lelis718的answer below

+0

太棒了,謝謝你指出了這個變化。一旦我可以證實這個實際工作,我會更新我的代碼:) – defines

+7

如果我們有一個動態的標題和說明? – Kasturi

+1

我還沒有嘗試過,但我會想象你可以用你的動態值替換靜態標題和描述。 – Snekse

2

我有一個Joomla模塊,顯示的東西...我希望能夠分享在Facebook上的東西,而不是頁面的標題元描述...所以我的解決方法是有一個祕密的.php文件當它檢測與格式的標題,我想從我的Joomla模塊共享的項元應將描述特定頁面的URL FB的

$_SERVER['HTTP_USER_AGENT'] 

if($_SERVER['HTTP_USER_AGENT'] != 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)') { 
    echo 'Direct Access'; 
} else { 
    echo 'FB Accessed'; 
} 

,並通過變量被執行服務器...

a name="fb_share" share_url="MYURL/sharer.php?title=TITLE&desc=DESC"

希望這有助於...

29

我認爲這個網站有解決方案,我現在會測試它。 它看起來像Facebook已經改變了share.php的參數,所以爲了定製共享窗口文本和圖像,你必須把參數放在一個「p」數組中。

http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

檢查出來。

+0

這是完全**我正在尋找。圖API對許多事情都有好處,但只是預先傳播一些發佈數據不應該需要令牌和應用程序授權。 –

+2

現在不適用於我 – stoefln

+0

這就是我一直在尋找的URL結構,它提供了鏈接到第三方圖像的鏈接以及它作爲URL查看的頁面。如果其他人正在查看http://www.facebook.com/sharer/sharer.php?s=100&p[title]=LINK_TITLE&p[summary]=LINK_DESCRIPTION&p[url]=URL_TO_LANDING_PAGE&p[images][0]=URL_TO_IMAGE& –

相關問題