Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Logic Apps+SendGridで作るメール購読フォームのバックエンド(前編)

メール購読フォームを作るとき、皆さんはデータベースに何を使っていますか?個人開発でなるべくお金をかけたくない場合、選択肢が少ないのではないかと思います。(HerokuのPostgresやmLabの無料枠など)

私が現在作っているものではSendGridのマーケティングキャンペーン機能(以降MCと省略)を使うことにしました。MCでは宛先を2,000件まで無料で登録できるので、データベース代わりに使えます。

MCと連携する部分はMicrosoft AzureのLogic Appsを使います。メール購読フォームからMCに登録するまでのフローは次のイメージです。

f:id:kikutaro777:20190718000949p:plain

前編ではSendGridにメールアドレスを登録するまでの流れを紹介します。

SendGridに宛先を登録する流れ

宛先の登録はMCのWeb APIを利用します。MCは画面操作が中心の機能で、Web APIは使いづらい部分もあるので利用の際はご注意ください。

宛先リストの作成

最初に、宛先をまとめる「宛先リスト」を作ります。

Contact APIのListsを使います。

f:id:kikutaro777:20190717232805p:plain

宛先リストを作成するとlist_idが返ってくるので、本来ならば、このlist_idを使ってメールアドレスを登録したいところなのですが、残念ながらメールアドレスを直接指定することができません。

f:id:kikutaro777:20190717233225p:plain

先に宛先を作成して、recpient_idを取得する必要があります。

宛先の作成

Contact APIのRecipientsを使います。

f:id:kikutaro777:20190717233332p:plain

宛先を作成するとrecpient_idが返ってくるので、最初のlist_idと一緒に使って、宛先リストに宛先を登録します。

宛先リストに宛先を登録

再びContact APIのListsを使います。

f:id:kikutaro777:20190717233442p:plain

この流れをLogic Appsで作っていきます。

Logic Appsで作成するフロー

冒頭で紹介しましたが、次のフローとなります。

f:id:kikutaro777:20190719195728p:plain

当初Microsoft Flowで作ろうとしたのですが、以前は使えていたHTTPのトリガーがPremiumアカウントのみに変わっていました。HTTPを選ぶとダイアログがでてきます。

そのため、AzureのLogic Appsを使うことにしました。Microsoft Flow、Logic Apps、Azure Functionsは使い分けが難しいのですが、公式ドキュメントで整理されていました。(細かくはまだ把握できていない…)

docs.microsoft.com

f:id:kikutaro777:20190717234311p:plain

Logic Appsの使い方はMicrosoft Flowとほぼ同じで、処理を作ってつなげていくだけです。

とりあえず前編はここまで。後編はLogic Appsで具体的にフローを作っていきます。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村