Skip to content

Instantly share code, notes, and snippets.

@hatanaka-akihiro
Last active February 25, 2022 07:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hatanaka-akihiro/8ee3ea8fc2c98c5beb71867649894627 to your computer and use it in GitHub Desktop.
Save hatanaka-akihiro/8ee3ea8fc2c98c5beb71867649894627 to your computer and use it in GitHub Desktop.
Questetra BPM Suite add-on Sending SMS by Twilio
<?xml version="1.0" encoding="UTF-8"?>
<service-task-definition>
<engine-type>2</engine-type>
<last-modified>2018-07-24</last-modified>
<label>Sending SMS by Twilio</label>
<label locale="ja">SMS 送信 by Twilio</label>
<configs>
<config name="AccountSid" required="true">
<label>C1. ACCOUNT SID</label>
<label locale="ja">C1. アカウント SID</label>
</config>
<config name="AuthToken" required="true">
<label>C2. AUTH TOKEN</label>
</config>
<config name="From" required="true">
<label>C3. From Telephone Number (You got at Twilio) ex. +180XXXXXXXX</label>
<label locale="ja">C3. 送信用の電話番号 ex. +180XXXXXXXX</label>
</config>
<config name="To" form-type="SELECT" select-data-type="STRING_TEXTFIELD" required="true">
<label>I1. To Telephone Number (Data: Singlie-line String)</label>
<label locale="ja">I1. 送信先の電話番号 (指定: 単一行文字型データ)</label>
</config>
<config name="Message" form-type="SELECT" select-data-type="STRING" required="true">
<label>I2. SMS body (Data: String)</label>
<label locale="ja">I2. SMS 本文 (指定: 文字型データ)</label>
</config>
</configs>
<script><![CDATA[
main();
function main(){
const accountSID = configs.get("AccountSid");
const authToken = configs.get("AuthToken");
const fromPhone = configs.get("From");
const apiUrl = 'https://api.twilio.com/2010-04-01/Accounts/' + accountSID + '/Messages.json';
const toPhone = engine.findDataByNumber(configs.get("To"));
const message = engine.findDataByNumber(configs.get("Message"));
const apiRes = httpClient.begin()
.basic(accountSID, authToken)
.formParam('From', fromPhone)
.formParam('To', toPhone)
.formParam('Body', message)
.post(apiUrl);
const responseCode = apiRes.getStatusCode();
const responseBody = apiRes.getResponseAsString();
engine.log("response: " + responseCode);
engine.log(responseBody);
if (responseCode != 201) {
throw "response is not 201: " + responseCode;
}
}
]]></script>
<icon>iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPHSURBVHhe7ZvdUdwwEMchBWQmlSR0EF7yDB1A
B6GS0EHoAJ7zAh2QdJJJA+S/vpVH1lnSfsnHDfxmbqTzSd7dv2R92L6Td944p5wO59/nbz+RXO2+
dbn7+OfXNeeHMkwABPwDyffdNze3EOSG86GEC4DAXzg7BAgR6nPYyUYHXhIlhPskWwde4hXCXBmB
f0HyvPt2cM4gxG/OqzAJcOhWr2HpDeoKrzX4hFYEVeGA4G/g4C3nV4ENmjppCjWjEUFc0Bq8pVvm
jLYrKmRxwht4ySgfugW0hqMDL4n25wOnq8AYTXViRgdPaG30YmgKAKTz/PUWwSfYlnSz1Iyh6rSi
q32CQ385vyncuqJGqjVQrwf0oJY/SPAEbNPqz7VtXlVF2vo1VRM4zz2SC3yeUPZ8OigEdR+RfMXn
AXUvp4MVPP6aBWgF36ovEM1U1+rz3oGRwSdq9Q9h2zsGLJA4QKyV89T1sBAAJ++uwVstoAG2aGyY
yPMeJL6VMZY9wHwPDyemAU9DXl5V12ArZxGj6hLoKBzSikKqtrQ9NHIMeOJ0C8JszQKgW9F9ezNQ
XjXPgztOiTzfxWBrQR5r3gN6Dy1C78sjiHkFl+eD6Pk6xyq+BOBk804OgTLS62+tBUWtKrEh8TUR
OQZMCBw8R5m9a5iPNUWQBK8lXACCHS3X7/S873Qt+AT9xnXLMeGSj4cznxQDQ3OFNcqBUUjjGdID
jolhAqAFLqgVso94mqWyRd1hi6whApDTSMrl6hUHQ3v8Veg3rltOyfd8PJxwAQSOPq6JwMfoJkiV
ESKIBYDx7kZJ4eBaoM3gExIbEl8TuQC95ajrcVUJnJzHhDwfRM/XOdZZAEwLruUoghC1YEZ+nUvf
HZow2FqQxxo5BlQHtwGE2VIJAOVb198Dp1tQtdXxcY9SAPEmogTdqnnreoW8vKquwVbOIsa95a1E
wbSMLNGoX57DUzdh8T1yDKg6VrJWzlPXw+rJPL2AaNXvBWCta/XZ3AN6jrKxNFhN29xWAImsXNo2
06OxZl1J8DW8J6WHo6r7edHAT1pDdBdSNQG9YwDt2lQvUUTCtl2ryKoArS5X8MytsCls0/VuANHr
AWec9pj275wfDtuStnwzhm4rawNT9BwT0f6InLW0brQQo3wQO2lxgPAKMdquyjmrMxnH+6psIkCE
oWh7nFoA4rWKYLncTAshNiSdIreA/jBhakxTpZxD9wZr4Am3AImthfAGnggTIDFaiKjAE+ECJCAE
TWXml64KjuePkzUgCK3dpZumzf46+87b5uTkP4D50skW/Mt0AAAAAElFTkSuQmCC</icon>
</service-task-definition>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment