SendGrid Web API V3では認証方法が増えて、ベーシック認証やAPIキーを利用することができるみたいです。
API v3 Overview - SendGrid Documentation | SendGrid
先日使ってみたHTTPクライアントライブラリのUnirest for Javaは、元々このAPI叩くために触ってました(^^;
全然利用例を書いていないのにはてブのったりして焦りました…。kikutaro777.hatenablog.com
Basic認証
SendGridで登録したユーザとパスワードをコロンでつなげてBase64で変換します。
例えば、ユーザが「Aladdin」でパスワードが「open sesame」の場合は「Aladdin:open sesame」をBase64で変換します。
今回は次のWebサイト使って変換しました。
www.base64encode.org
ちなみにAladdinとopen sesameはUSのWikipediaのBasic認証の解説ページからでした(^^;
Basic access authentication - Wikipedia, the free encyclopedia
ここまで準備できたら、あとは次のように呼び出すだけ。
HttpResponse<JsonNode> ret = Unirest.get("https://api.sendgrid.com/v3/templates")
.header("Authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
.asJson();
System.out.println(ret.getBody());
SendGridではメールのひな形(テンプレート)を作れるのですが、それを取得するものです。
結果はJSONで次のような情報が返ってきます。
{
"templates": [
{
"id": "8832dabe-3515-47ac-a06d-f8852970556a",
"name": "kikutaro_template",
"versions": [
{
"active": 1,
"id": "37268f35-0ed2-4c55-bf1a-593a677b7f43",
"name": "kikutaro_template Version 1",
"subject": "<%subject%>",
"template_id": "8832dabe-3515-47ac-a06d-f8852970556a",
"updated_at": "2015-07-18 10:23:53"
}
]
}
]
}
今回はテンプレートを全て取得するものでしたが、基本的にREST形式となっていて
- 全てのテンプレートを取得
- テンプレートIDを指定して一本引き
- テンプレートの作成(POST)
- テンプレートの編集(PATCH)
- テンプレートの削除(DELETE)
などの操作がAPIからできます。この辺はまた別途使っていきたい。
なお、UnirestではBASIC認証に対応していて、次のように書くこともできます。
HttpResponse<JsonNode> ret = Unirest.get("https://api.sendgrid.com/v3/templates")
.basicAuth("Aladdin", "open sesame")
.asJson();
System.out.println(ret.getBody());
APIキーによる認証
APIキーについてはKKEのブログに日本語で詳しく解説されてますので、ここでは解説を飛ばします。
APIキー認証でセキュリティを強化しよう | ブログ | SendGrid
次のように書けます。
HttpResponse<JsonNode> ret = Unirest.get("https://api.sendgrid.com/v3/templates")
.header("Authorization", "Bearer SG.xxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyyyyyyyy")
.asJson();
System.out.println(ret.getBody());
認証ができてしまえば、色々API叩けるので遊べそうです。