How to setup the HTTP API to send SMS
Prerequisites
- PAS 2.7 or higher installed
- PhenixID Message Gateway configured
Authentication
It is recommended to add authentication to the API. These authentication methods are supported:
- Client certificate (recommended).
Use a reverse proxy to add client certificate authentication. Add valves to the pipe(s) to verify the certificate. Please consult the valves documentation.
- Basic authentication
Add valves to the pipes to perform basic authentication verification. Please consult the valves documentation.
Add local http-api module
- Login to configuration manager
- Click the Advanced tab
- Open Modules (click on the pen)
- Add this module (if module is already added, only add tenant and/or allowedOperation):
{
"module": "com.phenixidentity~phenix-api-authenticate",
"enabled": "true",
"config": {
"tenant": [
{
"id": "t1",
"displayName": "Tenant1",
"allowedOperation": [
"sendSMS"
]
}
]
},
"id": "authapi_module"
}
- Click Stage Changes and Commit Changes
- Open NODE_GROUPS (click on the pen)
- Add id of the newly added module to module_refs. Example below. (You can skip this step if the module was already added)
{
"name": "WIN-DHB3ICNDG4E",
"description": "Default node (created automatically)",
"config": {
"module_refs": "authapi_module,sealapp,signapp_1,......"
},
"created": "2017-07-03T11:38:03.135Z",
"id": "493afd0e-0fe8-40e4-b1a1-a24a5e2df6e2",
"modified": "2017-07-03T14:39:43.257Z"
}
- Click Stage Changes and Commit Changes
Fetch message gateway id reference
- Click the Advanced tab
- Open Globals
- Fetch the id of the message gateway setting
Add pipes to send SMS
In this example, no client certificate is used. Please read the Valves documentation on how to configure a client certificate to the pipe.
- Click the Advanced tab
- Open Pipes (click on the pen)
- Add this pipe.
{
"id": "sendSMS",
"description": "Send SMS",
"valves": [
{
"name": "ItemCreateValve",
"enabled": "true",
"config": {
"dest_id": "{{request.mobile}}"
}
},
{
"name": "SMSValve",
"config": {
"recipient_param_name": "{{request.mobile}}",
"userid_param_name": "{{request.mobile}}",
"wash_recipient_number": "true",
"use_flash": "false",
"message_gateway_settings": "f7582459-f3c1-4fda-b872-45e1e9450888",
"message": "{{request.message}}"
}
}
]
}
- Change the message_gateway_settings value to the previously fetched id value.
- Click Stage Changes and Commit Changes
Test
Use a HTTP rest client for testing and debugging. Follow the document Using HTTP API to send SMS to structure the HTTP requests properly.