Facebook 取得帶標題連結 user script
問題描述
我要把臉書貼文貼到其他網站作為引用資料來源,連結必須是永久連結,且文字能顯示相關資訊(理想是顯示貼文的「標題」)而不是「Facebook」「影片」這樣的文字。
實際作業會發現連結格式很亂,有些情況甚至是「登入後」看不到標題(網頁 title),反而要登出才有。
成果
Greasyfork → Facebook 取得帶標題連結,原始碼也放在 GitHub。
在頂端塞一個小元件,把文章的「時間戳記連結」拖曳進去,就會找出「帶標題的連結」,顯示在一個小對話框,可以複製 HTML。
研究
每篇貼文的連結 URL,大家都是由網頁上「時間戳記」的部分取得(臉書主要只曝露在這裡),然而根據貼文露出方式(在動態牆、彈出對話框、影片推廣等),同一篇貼文有多種不同連結,點進去看到的可能也不一樣。
只能盡量列舉處理,想辦法轉換成「標題最完整」的連結構造。
也參考 Facebook 登入牆移除器(有提供「永久連結/標準網址」功能)已處理的各種格式,它還有從網頁 meta 甚至 JS relay(臉書的內部實作)偵測標準連結的實作(我沒有做)。
目前已知的格式
-
使用者貼文
/{user}/posts/{id}例如
https://www.facebook.com/twreporter/posts/pfbid0bDDP6YCaEfULbAjBruvVbHVySX2iemoHCQRnaeKipNtbpDcx2Tz71WUqDnQZdWDTl?__cft__[0]={省略}&__tn__={省略}把追蹤參數移除即可,標準網址為: https://www.facebook.com/twreporter/posts/pfbid0bDDP6YCaEfULbAjBruvVbHVySX2iemoHCQRnaeKipNtbpDcx2Tz71WUqDnQZdWDTl
-
群組內的貼文
/groups/{group}/posts/{id}例如
https://www.facebook.com/groups/Show.YMSNP/posts/1532962150583712/?__cft__[0]={省略}&__tn__={省略}也是移除追蹤參數即可。
-
有永久連結參數
/groups/{group}/?multi_permalinks={id}例如
https://www.facebook.com/groups/667899516591545/?multi_permalinks=26147630041525142¬if_id={省略}¬if_t=feedback_reaction_generic&ref=notif移除追蹤參數,並統一轉為
posts/{postId}格式: https://www.facebook.com/groups/667899516591545/posts/26147630041525142 -
影片:Reel
/reel/{id}例如
https://www.facebook.com/reel/1421756105769991/?__cft__[0]={省略}&__tn__={省略}移除追蹤參數,並統一轉為
video.php?v=格式: https://www.facebook.com/video.php?v=1421756105769991 -
影片:Watch
/watch/?v={id}例如
https://www.facebook.com/watch/?v=1221241823458045移除追蹤參數,並統一轉為
video.php?v=格式: https://www.facebook.com/video.php?v=1221241823458045 -
影片:使用者貼文
/{user}/videos/{id}/例如
https://www.facebook.com/FANCA.Taiwan/videos/653740892754035/這個形式帶有 user 資訊,比前面只有 id 的品質好,所以移除參數即可,盡量保留原狀。




有 0 個意見
☂