with JLCPCB and Anthropic (Claude)?
import { axios } from "@pipedream/platform"
import crypto from "crypto"
export default defineComponent({
props: {
jlcpcb: {
type: "app",
app: "jlcpcb",
}
},
async run({ steps, $ }) {
const appCtx = this;
function generateNonce() {
return crypto.randomBytes(16).toString('hex');
}
function buildStringToSign(method, path, timestamp, nonce, body = '') {
return `${method.toUpperCase()}\n${path}\n${timestamp}\n${nonce}\n${body}\n`;
}
function signString(stringToSign, secretKey) {
const hmac = crypto.createHmac('sha256', secretKey);
hmac.update(stringToSign, 'utf8');
return hmac.digest('base64');
}
function getAuthHeader(method, path, body, appId, accessKey, secretKey) {
const nonce = generateNonce();
const timestamp = Math.floor(Date.now() / 1000);
const stringToSign = buildStringToSign(method, path, timestamp, nonce, body);
const signature = signString(stringToSign, secretKey);
return `JOP appid="${appId}", accesskey="${accessKey}", nonce="${nonce}", timestamp="${timestamp}", signature="${signature}"`;
}
async function queryOrder() {
const appId = appCtx.jlcpcb.$auth.app_id;
const accessKey = appCtx.jlcpcb.$auth.access_key;
const secretKey = appCtx.jlcpcb.$auth.secret_key;
const method = "POST";
const path = "/overseas/openapi/pcb/order/detail";
const bodyObj = { batchNumber: "BATCH12345" };
const body = JSON.stringify(bodyObj);
const authHeader = getAuthHeader(method, path, body, appId, accessKey, secretKey);
const response = await axios($, {
method, url: `https://open.jlcpcb.com${path}`, data: bodyObj,
headers: {
"Content-Type": "application/json",
"Authorization": authHeader
}
});
return response;
}
return await queryOrder();
},
})
The Anthropic (Claude) API offers a conversational AI that can be leveraged for a variety of applications, ranging from answering questions to generating content or providing customer support. In Pipedream, you can create powerful workflows that utilize the capabilities of Claude to automate responses, analyze text, or enhance data with AI-generated insights. Pipedream's serverless platform simplifies integrating Claude into your processes with other apps and services for seamless automation.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
anthropic: {
type: "app",
app: "anthropic",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.anthropic.com/v1/models`,
headers: {
"x-api-key": `${this.anthropic.$auth.api_key}`,
"anthropic-version": `2023-06-01`,
},
})
},
})