導覽

Go

在 Go 中使用簽署網址

用 Go SDK 產生簽署網址。有人開啟這個網址時,它會渲染範本圖片。

GenerateImageSignedURL 會建立一個連結,在有人開啟時渲染圖片。它不會發出任何網路請求:SDK 會在你的伺服器上,用你的 API 金鑰為網址簽署。

請求

它接受範本 ID 和 *CreateImageOptions。傳入 nil 則使用預設值。

#templateIDstringrequired

範本 ID,例如 tpl_xxx。

#Modifications[]Modification

要放進範本圖層的值。它們會放在網址中傳送,所以請保持簡短。每種圖層接受哪些欄位,請見 Modifications。

#Formatstringdefault: png

圖片格式:png、jpeg 或 webp。傳入其他值時,這個方法會回傳錯誤。

Go SDK 沒有 nocache 選項。自行建立網址時如何略過快取,請見簽署網址。

signedURL, err := client.GenerateImageSignedURL("tpl_xxx", &bannerify.CreateImageOptions{
	Modifications: []bannerify.Modification{
		{Name: "headline", Text: ptr("Hello, Ada")},
	},
	Format: "jpeg",
})
if err != nil {
	return err
}

回應

這個方法會以字串回傳網址:

https://api.bannerify.co/v1/templates/signedurl?apiKeyHashed=2f5a...&format=jpeg&modifications=%5B...%5D&sign=ce2d...&templateId=tpl_xxx

apiKeyHashed 告訴 Bannerify 是哪個金鑰簽署了這個網址。sign 是以你的 API 金鑰為金鑰,對其他參數計算的 HMAC-SHA256。任何人都無法在不破壞簽章的情況下,變更簽署網址中的範本或 modifications,所以你可以把這個網址放進網頁、電子郵件或 meta 標籤中。

tag := fmt.Sprintf(`<img src="%s" alt="Welcome banner">`, html.EscapeString(signedURL))

Bannerify 最多會快取渲染好的圖片 7 天。快取、配額和上限的說明,請見簽署網址。