ナビゲーション

Go

Go で署名付き URL を使う

Go SDK で署名付き URL を生成します。この URL は、開かれたときにテンプレートの画像をレンダリングします。

GenerateImageSignedURL は、開かれたときに画像をレンダリングするリンクを作ります。ネットワークリクエストは送りません。SDK が、API キーを使ってサーバー上で URL に署名します。

リクエスト

テンプレート ID と *CreateImageOptions を受け取ります。nil を渡すと既定値を使います。

#templateIDstringrequired

テンプレート ID。たとえば tpl_xxx です。

#Modifications[]Modification

テンプレートのレイヤーに設定する値。URL に含まれて送られるため、短くしてください。各レイヤーが受け付けるフィールドは、Modifications にあります。

#Formatstringdefault: png

画像の形式。png、jpeg、webp のいずれかです。それ以外の値を渡すと、メソッドはエラーを返します。

Go SDK に nocache オプションはありません。URL を自分で組み立てるときにキャッシュを使わない方法は、署名付き URLで説明しています。

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

レスポンス

メソッドは、URL を文字列で返します。

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

apiKeyHashed は、どのキーが URL に署名したかを Bannerify に伝えます。sign は、ほかのパラメーターを API キーで署名した HMAC-SHA256 です。署名付き URL のテンプレートや modifications は、署名を壊さずに変更することはできません。そのため、この URL をページ、メール、メタタグに入れても安全です。

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

Bannerify は、レンダリングした画像を最長 7 日間キャッシュします。キャッシュ、クォータ、上限については、署名付き URLで説明しています。