with Phemex and Klaviyo?
import crypto from "crypto";
import { axios } from "@pipedream/platform";
// Helper function to generate HMAC SHA256 signature
function generateSignature(secret, path, queryString, expiry, body = "") {
// Concatenate according to Phemex rules: Path + QueryString + Expiry + Body
const signedString = `${path}${queryString}${expiry}${body}`;
return crypto.createHmac("sha256", secret).update(signedString).digest("hex");
}
export default defineComponent({
props: {
phemex: {
type: "app",
app: "phemex",
}
},
async run({ steps, $ }) {
const path = "/accounts/accountPositions"; //Your Phemex API URL Path, QueryString, and body as needed
const queryString = "currency=BTC";
const body = ""; // For GET requests, no body
// Expiry: current Unix time + 60 seconds
const expiry = Math.floor(Date.now() / 1000) + 60;
// Generate signature
const signature = generateSignature(
this.phemex.$auth.api_secret,
path,
queryString,
expiry,
body
);
// Build headers
const headers = {
"x-phemex-access-token": this.phemex.$auth.api_key,
"x-phemex-request-expiry": expiry,
"x-phemex-request-signature": signature,
};
// Construct full URL
const url = `${this.phemex.$auth.api_url}${path}?${queryString}`;
// Make request
return await axios($, {
method: "GET", //Change the HTTP method accordingly, add body if needed
url,
headers,
});
},
})
The Klaviyo API grants you the power to automate and personalize your email marketing efforts. With it, you can manage lists, profiles, and campaigns, track event-driven communications, and analyze the results. By leveraging this API on Pipedream, you can create intricate, automated workflows that respond in real-time to your users' behavior, sync data across multiple platforms, and tailor your marketing strategies to improve engagement and conversion rates.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
klaviyo: {
type: "app",
app: "klaviyo",
}
},
async run({steps, $}) {
return await axios($, {
url: ` https://a.klaviyo.com/api/accounts/`,
headers: {
"Authorization": `Klaviyo-API-Key ${this.klaviyo.$auth.api_key}`,
"revision": `2023-12-15`,
},
})
},
})