with Discord and CoinCatch?
The Discord API interacts seamlessly with Pipedream, empowering you to craft customized automations and workflows for your Discord server. With this powerful integration, you can automate tasks like message posting, user management, and notifications, based on a myriad of triggers and actions from different apps. These automations can enhance the Discord experience for community moderators and members, by synchronizing with external tools, organizing community engagement, and streamlining notifications.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
discord: {
type: "app",
app: "discord",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://discord.com/api/users/@me`,
headers: {
Authorization: `Bearer ${this.discord.$auth.oauth_access_token}`,
"accept": `application/json`,
},
})
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
coincatch: {
type: "app",
app: "coincatch",
}
},
async run({ steps, $ }) {
const accessKey = this.coincatch.$auth.access_key;
const secretKey = this.coincatch.$auth.secret_key;
const passphrase = this.coincatch.$auth.passphrase;
// Helper function to generate signed headers
const createSignedHeaders = ({
method,
requestPath,
queryString = "",
body = "",
}) => {
const timestamp = Date.now().toString();
const upperMethod = method.toUpperCase();
// Build content to sign
let contentToSign = timestamp + upperMethod + requestPath;
if (queryString) {
contentToSign += "?" + queryString;
}
if (body) {
contentToSign += body;
}
// Generate signature
const hmac = crypto.createHmac("sha256", secretKey);
hmac.update(contentToSign);
const signature = hmac.digest("base64");
return {
timestamp,
method: upperMethod,
requestPath,
queryString,
body,
contentToSign,
signature,
headers: {
"ACCESS-KEY": accessKey,
"ACCESS-SIGN": signature,
"ACCESS-TIMESTAMP": timestamp,
"ACCESS-PASSPHRASE": passphrase,
},
};
};
// Call helper to get signed headers + metadata
const resp = createSignedHeaders({
method: "GET",
requestPath: "/api/mix/v1/account/accounts",
queryString: "productType=umcbl"
});
const url = `https://api.coincatch.com${resp.requestPath}${resp.queryString ? "?" + resp.queryString : ""
}`;
// Make the API request
return await axios($, {
method: resp.method,
url,
headers: resp.headers,
data: resp.body || undefined,
});
},
})