Phone Number Push Message API 2018-01-12

- Request
    - Request Headers
        - HTTP Request : `/bot/pnp/push/verified`
        - Method : POST
    - Request Header
        - Content-Type : `application/json`
        - Authorization : `Bearer {Channel Access Token}`
        - X-Line-Delivery-Tag : Delivery Tag (Optional)
            - フォーマット : EPOCH Time (10桁秒まで) + SHA256 によりハッシュ化した電話番号 (64桁) + ユーザ領域 (26桁)
            - 例 : `15034552939884E28681A7D668CEA94C147C716C0EC9DFE8B80B44EF3B57F6BD0602366BC3menu01`
    - Request Body
        - Field : `to`       ・ Required : Yes ・ Type : String                   ・ Description : E.164 フォーマットに則り、SHA256 によりハッシュ化した電話番号 (例 : `+81-90-0000-0000`)
        - Field : `messages` ・ Required : Yes ・ Type : Array of message objects ・ Description : 最大5個
- Response
    - Success Response
        - HTTP status : 200
        - Error Response のケースに当てはまらないエラーで、送信できなかった場合でも 200 を返します
    - Error Response
        - HTTP status : 400 ・ Reason : リクエスト内に無効なパラメータが含まれている
        - HTTP status : 401 ・ Reason : リクエスト内に認証された情報が含まれていない
        - HTTP status : 403 ・ Reason : 権限が与えられていない
        - HTTP status : 422 ・ Reason : 宛先の電話番号に送信できない
            - LINE にて宛先の電話番号が登録されていない
            - 宛先の電話番号の所属国において、本機能がサービス対象外となっている
            - ユーザの PNP 受信同意ステータスが Off になっている
- 注意事項
    - Push message に対応するプランでのみ使用できます
    - グループや複数ユーザが所属するトークルームには、メッセージを送信することはできません
    - 1つの request に対して1つの電話番号のみ設定可能です
    - 日本、タイ、台湾の電話番号のみ設定が可能です。国外の電話番号が設定された場合、エラーは発生しませんが、メッセージは送信されません
    - 分間 request の送信制限は Messaging API の rate limits に準拠しております
        - Messaging API の rate limits は API Reference をご参照ください 
        - Messaging API における push message の request は含まれません
- リクエストサンプル (Header に X-Line-Delivery-Tag なし)

```sh
curl -X POST \
-H 'Authorization: Bearer {CHANNEL_ACCESS_TOKEN}' \
-H 'Content-Type:application/json' \
-d '{
  "to": "hashed phone number",
  "messages":[
    {
      "type":"text",
      "text":"Hello, world1"
    }
  ]
}' https://api.line/me/bot/pnp/push/verified
```

- リクエストサンプル (Header に X-Line-Delivery-Tag あり)

```sh
curl -X POST \
-H 'Authorization: Bearer {CHANNEL_ACCESS_TOKEN}' \
-H 'Content-Type:application/json' \
-H 'X-Line-Delivery-Tag:delivery tag' \
-d '{
  "to": "hashed phone number",
  "messages":[
    {
      "type":"text",
      "text":"Hello, world1"
    }
  ]
}' https://api.line/me/bot/pnp/push/verified
```

- 配信通知を受信
    - ユーザに対してメッセージ送信が完了した後、イベントとして Messaging API の使用に則った webhook が通知されます
    - `userId` : Messaging API における送信されたユーザの識別子
    - `delivery.data` :
        - Request の Header に X-Line-Delivery-Tag がない場合 : リクエスト時の「to」にて指定したハッシュ化された電話番号
        - Request の Header に X-Line-Delivery-Tag がある場合 : リクエスト時の「X-Line-Delivery-Tag」にて指定した delivery tag
    - 本イベントはユーザへの送信成功を示しており、ユーザによる既読を示したものではございません
- Webhook サンプル (Request の Header に X-Line-Delivery-Tag なし)

```json
{
  "events": [
    {
      "type": "delivery",
      "timestamp": 1477546293712,
      "source": {
        "type": "user",
        "userId": "U65df85847b58e2e88deb993bf30f0230"
      },
      "delivery": {
        "data": "hashed phone number"
      }
    }
  ]
}
```

- Webhook サンプル (Request の Header に X-Line-Delivery-Tag あり)

```json
{
  "events": [
    {
      "type": "delivery",
      "timestamp": 1477546293712,
      "source": {
        "type": "user",
        "userId": "U65df85847b58e2e88deb993bf30f0230"
      },
      "delivery": {
        "data": "delivery tag"
      }
    }
  ]
}
```