with Curated and Sinch MessageMedia?
The Curated API enables you to automate the management of your newsletters. With it, you can create issues, manage subscribers, and curate content, all programmatically. This allows for rich integrations with other tools and systems, offering opportunities to streamline your newsletter operations. Using Pipedream, you can harness this functionality to set up custom workflows, trigger actions based on various events, and connect Curated with a plethora of other services to enhance your newsletter productivity.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
curated: {
type: "app",
app: "curated",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.curated.co/api/v3/publications`,
headers: {
"Authorization": `Token token=${this.curated.$auth.api_key}`,
},
})
},
})
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;
},
})