2014-02-07 74 views
3

有關於Facebook的sharer.php這麼多的問題,但他們都過時了。起初Facebook貶值它,但根據FB's dev documentation它現在回來了。 (編輯:現在是打算再次...?)向Facebook發佈狀態消息?

你以前可以使用這樣的:

http://www.facebook.com/sharer/sharer.php?u=<url to share>&t=<message text>

documentation現在只提到了這一點:

https://www.facebook.com/sharer/sharer.php?u=<url to share>

enter image description here

是否可以設置一些預先輸入ŧ當在Facebook上分享鏈接時出現在對話框中?

謝謝。

回答

12

股份對話框只需在URL任何分享更多的參數,沒有別的(標題,描述,圖片,...)。它從URL本身獲取這些數據,從嵌入到文檔中的Open Graph meta元素獲取這些數據,或者如果這些元素不存在,則會從內容中「猜測」。

和共享對話框的甚至是「舊」版本一直沒有采取很長一段時間預先設定的消息參數現在 - 因爲你不應該分享的東西時,以任何方式預填信息,無論這種分享實際發生的方式如何。 (「不應該」的意思,平臺政策明確禁止你這樣做。)

你當然也可以通過API共享鏈接(而不是稱爲「張貼」一個鏈接) - 因爲那發生在背景,消息是您在此過程中指定的參數。但是同樣的規則也適用 - 消息應該由用戶自己預先創建,這實際上意味着他們應該在之前的某處輸入它。即使在那裏,它也不應該被預填充,所以他們只需要按下回車鍵或點擊一個按鈕。

自從他們宣佈API v2.0以來,所有新的應用程序必須先通過「登錄審查」,然後他們才能要求任何高級權限(併發布鏈接需要一個)在您的應用程序的發佈流程中填充消息,您肯定不會獲得批准。當然,您可以嘗試對此進行「欺騙」,並在之後才執行預填充消息......但是,這樣做明顯違反了平臺政策,並且會在您遇到此類問題時阻止您的應用被阻止。

如果您計劃爲多個用戶使用相同或大致相同的消息做到這一點,你可以假設Facebook的算法將趕上那很容易。

+0

就像我想的那樣。謝謝! –

2

只是一個小評 - 而這是不可能的,因爲其他的評論說編輯的文本 - 它可以編輯一切都在那個頁面怎麼回事,如果你可以安裝在您的客戶機瀏覽器擴展(你沒有指定你的用例,所以我提到這一點,以防萬一你正在開發一些你能夠在客戶機級別上影響的東西)。

例如,一個Chrome擴展,你可以注入腳本到facebook.com域名。在擴展清單中。JSON:

"content_scripts": [ 
     { 
      "matches": ["https://*.facebook.com/*", 

然後這可能是您的contnet腳本,在那裏你可以通過掛接到markeup玩弄文字。這個例子發送分析(臉書分享者轉換率),並改變一些文本(從「分享」到「上傳」到臉書):

sharer = (function() { 
    var _ref = qs('ref') ? qs('ref') : 'unknown'; 
    function qs(name) { 
     name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
     var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
     return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 
    function isSharer() { 
     return location.pathname === '/sharer/sharer.php'; 
    } 
    function bindEvents() { 
     $('button[name="share"]').click(function() { 
      analytics.send('fb_sharer', 'share', _ref); 
     }); 
     $('#u_0_0').click(function() { 
      analytics.send('fb_sharer', 'cancel', _ref); 
     }); 
    } 
    function changeText() { 
     console.log($('.fcw').length); 
     $('.fcw').text('Upload to Facebook'); 
    } 
    function load() { 
     if (!isSharer()) return; 
     changeText(); 
     analytics.send('fb_sharer', 'view', _ref); 
     bindEvents(); 
    } 
    return { 
     load: load 
    } 
})(); 
+0

值得一提的是,謝謝。 –