with Printavo and Sinch MessageMedia?
The Printavo API allows for the automation of print shop management tasks, enabling users to streamline their operations by integrating their Printavo account with various other apps and services. With Pipedream's serverless platform, you can create workflows that trigger actions in Printavo or respond to events from Printavo, such as updating order statuses, syncing customer data, or automating notifications and reminders, all without writing complex code.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
printavo: {
type: "app",
app: "printavo",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://www.printavo.com/api/v1/accounts`,
params: {
token: `${this.printavo.$auth.api_token}`,
email: `${this.printavo.$auth.email}`,
},
})
},
})
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;
},
})