Sinch MessageMedia: Business SMS & Messaging Platform
Emit new event for every new row added in a table. See documentation here
Emit new event for every insert
, update
, or delete
operation in a table. This source requires user configuration using the Supabase website. More information in the README. Also see documentation here
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;
},
})
Supabase is a real-time backend-as-a-service that provides developers with a suite of tools to quickly build and scale their applications. It offers database storage, authentication, instant APIs, and real-time subscriptions. With the Supabase API, you can perform CRUD operations on your database, manage users, and listen to database changes in real time. When integrated with Pipedream, you can automate workflows that react to these database events, synchronize data across multiple services, or streamline user management processes.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
supabase: {
type: "app",
app: "supabase",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://${this.supabase.$auth.subdomain}.supabase.co/rest/v1/`,
headers: {
Authorization: `Bearer ${this.supabase.$auth.service_key}`,
"apikey": `${this.supabase.$auth.service_key}`,
},
})
},
})