LoginSignup
3
2

More than 1 year has passed since last update.

Twilio Functions で HTTP Headers を取得する

Last updated at Posted at 2021-08-18

2023年5月1日を持ちまして、株式会社KDDIウェブコミュニケーションズのTwilioリセール事業が終了したため、本記事に記載されている内容は正確ではないことを予めご了承ください。

はじめに

みなさん、こんにちは。
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」と入力します。
    スクリーンショット 2021-08-19 7.34.21.png

  • Add ボタンを押します。

Serverlessを利用する

重要
Node.jsのバージョンが12.22.1以上でないとローカル実行ではエラーになります。

  • 以下のコマンドでモジュールをインストールします。

npm i -S @twilio/runtime-handler@1.2.0-rc.3

  • package.jsonに、"@twilio/runtime-handler": "^1.2.0-rc.3",ができていることを確認します。
  • このままだとデプロイ時にエラーがでるため、上記の行を以下のように編集しておきます。
  • "@twilio/runtime-handler": "1.2.0-rc.3", (バージョンの^を削除)

コーディング

ヘッダを取得するためのコードは以下のとおりです。

Functions
  // Get headers
  const testHeader = event.request.headers['test-header'] || '';
  console.log(`test-header: ${testHeader}`);

この例では、test-headerというヘッダー値を取得しています。実際のヘッダーが大文字になっていても取得できます。

管理コンソール上で作成したサンプルコードは以下のようになります。
スクリーンショット 2021-08-19 7.33.38.png

テスト

作成したコードをデプロイして、早速テストをしてみましょう。
今回はヘッダー情報を送るために、Postmanを利用したいと思います。

  • メソッドに「POST」を選択します(GETでもOKです)。
  • デプロイした Functions のパスを指定します。
  • headersのKEYtest-headerを定義し、VALUEtestを入れておきます。
  • Sendします。

FunctionsHeaders.png

上記のように、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 サービスです。初期費用不要な従量課金制で、各種開発言語に対応しているため、多くのハッカソンイベントやスタートアップなどにも、ご利用いただいております。

自己紹介  
高橋克己(Katsumi Takahashi) 自称「赤い芸人
グローバル・インターネット・ジャパン株式会社 代表取締役
株式会社KDDIウェブコミュニケーションズ Twilio事業部エバンジェリスト

2001年より大手通信事業者の法人サービスの教育に携わり、企業における電話のしくみや重要性を研究。2016年よりTwilio事業部にジョインし、Twilioを使ったスマートコミュニケーションの普及活動を精力的に行っている。
2015 Hall of Doers
2019 Twilio Champions
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2