with Sinch MessageMedia and Plivo?
Emit new event when a new SMS is received. See the docs
import axios from "axios";
import crypto from 'crypto';
export default defineComponent({
props: {
sinch_messagemedia: {
type: "app",
app: "sinch_messagemedia",
}
},
async run({ steps, $ }) {
// Date header in RFC7231 format
const date = new Date().toUTCString();
// Signing string (No Content-MD5 needed as this is a GET request with no body)
const requestLine = 'GET /v1/messaging/numbers/sender_address/addresses/ HTTP/1.1';
const signingString = `Date: ${date}\n${requestLine}`;
// Creating HMAC-SHA1 hash
const hmac = crypto.createHmac('sha1', this.sinch_messagemedia.$auth.api_secret);
hmac.update(signingString);
// Base64 encode the hash
const signature = hmac.digest('base64');
// Prepare authentication header and make the request
const authHeader = `hmac username="${this.sinch_messagemedia.$auth.api_key}", algorithm="hmac-sha1", headers="Date request-line", signature="${signature}"`;
const response = await axios({
method: 'get',
url: `${this.sinch_messagemedia.$auth.api_url}/v1/messaging/numbers/sender_address/addresses/`,
headers: {
'Date': date,
'Authorization': authHeader,
'Accept': 'application/json'
}
});
return response.data;
},
})
The Plivo API taps into the power of cloud communication, allowing you to programmatically send SMS messages, make voice calls, and manage user verifications among other telephony functions. With Pipedream's serverless platform, you can easily integrate Plivo into workflows that automate these communication tasks, react to incoming messages or calls, and connect with numerous other apps for comprehensive automation solutions.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
plivo: {
type: "app",
app: "plivo",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.plivo.com/v1/Account/${this.plivo.$auth.auth_id}/Message/`,
auth: {
username: `${this.plivo.$auth.auth_id}`,
password: `${this.plivo.$auth.auth_token}`,
},
})
},
})