iT邦幫忙

0

Hugo建立的網站可以取得其它網站的open graph 資訊嗎

  • 分享至 

  • xImage

我想要在自己的網站文章中,分享其它網站的連結。
不想要只顯示超連結,想要有像在通訊軟體傳網址時會顯示的預覽畫面功能。
訴求就是一個shortcode ,可以自行輸入URL,在文章就會顯示預覽畫面

目前有用JS寫一個擷取網址的open graph 資訊的shortcode,但會遇到cors問題。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
Felix
iT邦研究生 2 級 ‧ 2023-05-23 16:08:24
最佳解答

取得網頁的元資料,必須使用爬取器才能實現,但是免費方案通常都有次數限制,也必須架設伺服器保存 API 權杖。

不過,幸運的是有一個名為 jsonlink 的服務,既沒有次數限制,亦不需要 API 權杖,能直接嵌入至網站作為 CORS 的 Proxy 使用,詳細的服務說明和使用方式請參見我在 1020981010210112 的回答。

0
win895564
iT邦新手 1 級 ‧ 2023-05-23 15:00:38

這個解決方案的基本思路是使用一個中介服務,如 OpenGraph.io,來檢索 Open Graph 資料。OpenGraph.io 提供了一個 API,可以使用它來獲取任何網頁的 Open Graph 資料。這樣你就可以在 Hugo 中撰寫一個 shortcode,使用這個 API 來獲取你想要顯示預覽的網頁的 Open Graph 資訊。

具體來說,你可能需要以下的步驟:

1.前往 OpenGraph.io,註冊一個帳號並獲得 API 金鑰。
2.在你的 Hugo 網站的 config.toml 文件中添加你的 OpenGraph.io API 金鑰。
3.創建一個新的 Hugo shortcode。這個 shortcode 應該接收一個 URL 作為參數,然後使用 OpenGraph.io API 來獲取該 URL 的 Open Graph 資訊。
4.在你的 Hugo 文章中使用這個 shortcode,並且將你想要顯示預覽的網頁的 URL 作為參數傳遞給它。
請注意,使用 OpenGraph.io 的免費層級每個月限制100次請求。如果你需要更多的請求,可能需要考慮升級你的 OpenGraph.io 帳號。

這種方法的好處是可以解決 CORS 問題,因為你的請求是被發送到 OpenGraph.io,而不是直接到其他網站。然而,這種方法也有一些限制,例如 OpenGraph.io 的請求限制,以及依賴於第三方服務的可用性。

我要發表回答

立即登入回答