Twilio Functions で HTTP Headers を取得する
はじめに
みなさん、こんにちは。
KDDIウェブコミュニケーションズの Twilioエバンジェリストの高橋です。
今回は、Twilio Functions で HTTP Headers を取得する方法を解説します。従来、Functions ではヘッダー情報を取得することができず、例えばLINEのMessaging APIをセキュアに扱うことができなかったり、なにかと不便でした。
今回、ベータ版ではあるものの、ヘッダー情報が取得できるようになったとのことで早速試してみました。
https://www.twilio.com/docs/runtime/functions/headers-and-cookies
重要
本機能は現時点(2021/8/19)ではベータ版のため、サポートの対象外となります。また、今後のバージョンアップで機能が変更になることもあります。
準備
管理コンソールを利用する
Twilio Functions を管理コンソールから利用する場合は以下の手順でセットアップを行います。
- 管理コンソールにログインします。
- Functionsに移動します。
- 新しいサービスを作るか、既存のサービスを選択します。
- Settings > Dependencies を選択します。
MODULE 欄に「@twilio/runtime-handler」、VERSIONに「1.2.0-rc.3」と入力します。
Add ボタンを押します。
Serverlessを利用する
重要
Node.jsのバージョンが12.22.1以上でないとローカル実行ではエラーになります。
- 以下のコマンドでモジュールをインストールします。
npm i -S @twilio/[email protected]
-
package.json
に、"@twilio/runtime-handler": "^1.2.0-rc.3",
ができていることを確認します。 - このままだとデプロイ時にエラーがでるため、上記の行を以下のように編集しておきます。
-
"@twilio/runtime-handler": "1.2.0-rc.3",
(バージョンの^を削除)
コーディング
ヘッダを取得するためのコードは以下のとおりです。
// Get headers
const testHeader = event.request.headers['test-header'] || '';
console.log(`test-header: ${testHeader}`);
この例では、test-header
というヘッダー値を取得しています。実際のヘッダーが大文字になっていても取得できます。
管理コンソール上で作成したサンプルコードは以下のようになります。
テスト
作成したコードをデプロイして、早速テストをしてみましょう。
今回はヘッダー情報を送るために、Postmanを利用したいと思います。
- メソッドに「POST」を選択します(GETでもOKです)。
- デプロイした Functions のパスを指定します。
- headersのKEYに
test-header
を定義し、VALUEにtest
を入れておきます。 - Sendします。
上記のように、VALUEとして指定したtestが戻ってくればテストは成功です。
まとめ
Functionsでヘッダー情報を取得したいというニーズは以前より多く寄せられていたものなので、今回それが実現したことで、よりFunctionsの使いみちが増えたと思います。
なお、この記事では触れていませんが、ヘッダー同様にCookies情報も取得できるようになっています。
現時点では、Serverless でローカル実行したときはうまく動かなかったりするのですが、とりあえずサーバー上での動作は確認できているので、ぜひ活用していきたいと思います。
(追記)1.2.0-rc.3
では、Node.jsのバージョンを12.22.1以上にすることでエラーは解消されています。
Twilio(トゥイリオ)とは
https://cloudapi.kddi-web.com
Twilio は音声通話、メッセージング(SMS /チャット)、ビデオなどの 様々なコミュニケーション手段をアプリケーションやビジネスへ容易に組み込むことのできるクラウド API サービスです。初期費用不要な従量課金制で、各種開発言語に対応しているため、多くのハッカソンイベントやスタートアップなどにも、ご利用いただいております。
Author And Source
この問題について(Twilio Functions で HTTP Headers を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/mobilebiz/items/9ec081178c8c426f653e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .