Difference between revisions of "NATS4 REST API Send Email"
From TMM Wiki
Jump to navigationJump to searchTmm vincent (talk | contribs) m (updated parameter descriptions and types) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
| show_api_admin_section = true | | show_api_admin_section = true | ||
}} | }} | ||
− | == '''POST /sendemail''' == | + | == '''POST /service/sendemail''' == |
'''Description''' | '''Description''' | ||
− | * | + | *NATS4 supports an API resource to automatically send emails to [[ct#Member|members]] or [[ct#Affiliate|affiliates]]. The function differentiates between members and affiliates based on whether the email uses a member ID or a login ID as an argument. |
'''Resource URL''' | '''Resource URL''' | ||
− | *<nowiki>http://domain/api/ | + | *<nowiki>http://domain/api/service/sendemail</nowiki> |
− | *Replace domain with the | + | *Replace domain with the NATS domain |
− | '''[[NATS4_REST_API_Overview#Allowed_HTTP_Request_Methods|Request Method''' | + | '''[[NATS4_REST_API_Overview#Allowed_HTTP_Request_Methods|Request Method]]''' |
*POST | *POST | ||
Line 21: | Line 21: | ||
== '''Parameters''' == | == '''Parameters''' == | ||
− | ''' | + | '''Parameters must be sent with the request body. The examples below show the parameters sent as x-www-form-urlencoded''' |
− | This | + | This API endpoint will allow you to add option rules by optionid, rule type, loginid, siteid, tourid, programid, billerid, country, start_time, end_time and cascadeid. These are parameters used to specify which option rule you're adding: |
*subject: The email subject | *subject: The email subject | ||
**'''''type: string''''' | **'''''type: string''''' | ||
− | **'''''required''' | + | **'''''required''''' |
− | *type: 'member or affiliate' | + | *type: 'member' or 'affiliate' |
**'''''type: string''''' | **'''''type: string''''' | ||
− | **'''''required''' | + | **'''''required''''' |
− | *template: The name of the template being used for the email | + | *template: The name of the template being used for the email |
− | **'''''type: | + | **'''''type: string''''' |
− | **''''' | + | **'''''required''''' |
− | *memberid: The ID | + | *memberid: The member ID, if the email type is a Member email. This argument must be included if the email is sent to a [[ct#Member|member]] |
**'''''type: integer''''' | **'''''type: integer''''' | ||
− | **''''' | + | **'''''optional''''' |
− | *loginid: The ID | + | *loginid: The affiliate ID, if the email type is an Affiliate email. This argument must be provided if the email is sent to an [[ct#Affiliate|affiliate]] |
**'''''type: integer''''' | **'''''type: integer''''' | ||
− | **'''''optional''' | + | **'''''optional''''' |
− | *custom_vars: | + | *custom_vars: accepts an associative array of additional variables that will be included your email's template variables |
− | **'''''type: | + | **'''''type: array''''' |
− | **'''''optional''' | + | **'''''optional''''' |
− | *memberidx: The biller's membership identifier | + | *memberidx: The biller's membership identifier |
**'''''type: string''''' | **'''''type: string''''' | ||
− | **'''''optional''' | + | **'''''optional''''' |
Line 52: | Line 52: | ||
'''POST''' | '''POST''' | ||
− | <nowiki>http://domain/api/ | + | <nowiki>http://domain/api/service/sendemail</nowiki> |
*Response: | *Response: | ||
Line 68: | Line 68: | ||
$data = array( | $data = array( | ||
'subject' => 'hello', | 'subject' => 'hello', | ||
− | 'type' => ' | + | 'type' => 'affiliate', |
− | |||
'template' => 'test', | 'template' => 'test', | ||
'loginid' => '1', | 'loginid' => '1', | ||
); | ); | ||
− | $url = 'http://domain/api/sendemail'; | + | $url = 'http://domain/api/service/sendemail'; |
$headers = array( | $headers = array( | ||
Line 99: | Line 98: | ||
import json | import json | ||
− | url = 'http://domain/api/sendemail' | + | url = 'http://domain/api/service/sendemail' |
payload = { | payload = { | ||
− | 'subject' | + | 'subject' => 'hello', |
− | 'type' | + | 'type' => 'affiliate', |
− | + | 'template' => 'test', | |
− | 'template' | + | 'loginid' => '1', |
− | 'loginid' | ||
} | } | ||
Line 117: | Line 115: | ||
res = requests.post(url, data=payload, headers=headers) | res = requests.post(url, data=payload, headers=headers) | ||
print res.text | print res.text | ||
− | |||
− | |||
</pre> | </pre> | ||
Line 127: | Line 123: | ||
data = | data = | ||
− | 'subject' | + | 'subject' => 'hello', |
− | 'type' | + | 'type' => 'affiliate', |
− | + | 'template' => 'test', | |
− | 'template' | + | 'loginid' => '1', |
− | 'loginid' | ||
} | } | ||
var options = { | var options = { | ||
− | url: 'http://domain/api/sendemail', | + | url: 'http://domain/api/service/sendemail', |
method: 'POST', | method: 'POST', | ||
form: data, | form: data, | ||
Line 156: | Line 151: | ||
request(options, callback); | request(options, callback); | ||
− | |||
− | |||
</pre> | </pre> | ||
'''Curl''' | '''Curl''' | ||
<pre> | <pre> | ||
− | curl -X POST 'http://domain/api/sendemail' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: tmm1phrvezsbu" -H "Content-Type: application/x-www-form-urlencoded" -d 'subject=hello&type=affiliate&template=test&loginid=1' | + | curl -X POST 'http://domain/api/service/sendemail' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: tmm1phrvezsbu" -H "Content-Type: application/x-www-form-urlencoded" -d 'subject=hello&type=affiliate&template=test&loginid=1' |
</pre> | </pre> | ||
+ | == '''Legacy Changes''' == | ||
+ | '''''Use the following documentation changes if you are using the REST API with NATS versions below <font style="color: red;">4.1.13.5</font>:''''' | ||
+ | |||
+ | '''Resource URL''' | ||
+ | *<nowiki>http://domain/api/sendemail</nowiki> | ||
+ | *Replace domain with your nats domain | ||
+ | |||
+ | '''Parameters''' | ||
+ | *No changes. | ||
[[Category:NATS4 API Articles]] | [[Category:NATS4 API Articles]] |
Latest revision as of 21:09, 1 November 2018
POST /service/sendemail
Description
- NATS4 supports an API resource to automatically send emails to members or affiliates. The function differentiates between members and affiliates based on whether the email uses a member ID or a login ID as an argument.
Resource URL
- http://domain/api/service/sendemail
- Replace domain with the NATS domain
- POST
Response Format
- JSON
- HTTP headers
Parameters
Parameters must be sent with the request body. The examples below show the parameters sent as x-www-form-urlencoded
This API endpoint will allow you to add option rules by optionid, rule type, loginid, siteid, tourid, programid, billerid, country, start_time, end_time and cascadeid. These are parameters used to specify which option rule you're adding:
- subject: The email subject
- type: string
- required
- type: 'member' or 'affiliate'
- type: string
- required
- template: The name of the template being used for the email
- type: string
- required
- memberid: The member ID, if the email type is a Member email. This argument must be included if the email is sent to a member
- type: integer
- optional
- loginid: The affiliate ID, if the email type is an Affiliate email. This argument must be provided if the email is sent to an affiliate
- type: integer
- optional
- custom_vars: accepts an associative array of additional variables that will be included your email's template variables
- type: array
- optional
- memberidx: The biller's membership identifier
- type: string
- optional
Example Request
POST
http://domain/api/service/sendemail
- Response:
"SUCCESS"
Example Code
PHP
<?php $curl = curl_init(); $data = array( 'subject' => 'hello', 'type' => 'affiliate', 'template' => 'test', 'loginid' => '1', ); $url = 'http://domain/api/service/sendemail'; $headers = array( 'api-key: 44b5498dbcb481a0d00b404c0169af62', 'api-username: tmm1phrvezsbu' ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); $resp = curl_exec($curl); //dumps an associative array representation of the json var_dump(json_decode($resp, true)); // Close request to clear up some resources curl_close($curl);
Python
- This example requires pip and the request library which can be installed via pip by: 'pip install requests'
import requests import json url = 'http://domain/api/service/sendemail' payload = { 'subject' => 'hello', 'type' => 'affiliate', 'template' => 'test', 'loginid' => '1', } headers = { 'api-key': '44b5498dbcb481a0d00b404c0169af62', 'api-username': 'tmm1phrvezsbu' } res = requests.post(url, data=payload, headers=headers) print res.text
node.js
- This example requires npm and the request module which can be installed via npm by: 'npm install request'
var request = require('request'); data = 'subject' => 'hello', 'type' => 'affiliate', 'template' => 'test', 'loginid' => '1', } var options = { url: 'http://domain/api/service/sendemail', method: 'POST', form: data, json: true, headers: { 'api-key': '44b5498dbcb481a0d00b404c0169af62', 'api-username': 'tmm1phrvezsbu' } }; function callback(error, response, body) { if (!error && response.statusCode == 200) { console.log(body); } else{ console.log(body); } } request(options, callback);
Curl
curl -X POST 'http://domain/api/service/sendemail' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: tmm1phrvezsbu" -H "Content-Type: application/x-www-form-urlencoded" -d 'subject=hello&type=affiliate&template=test&loginid=1'
Legacy Changes
Use the following documentation changes if you are using the REST API with NATS versions below 4.1.13.5:
Resource URL
- http://domain/api/sendemail
- Replace domain with your nats domain
Parameters
- No changes.