with JLCPCB and Microsoft Teams?
Emit new event when a new channel is created within a team. See the documentation
Emit new event when a new message is posted in a channel. See the documentation
Emit new event when a new chat is created. See the documentation
Emit new event when a new message is received in a chat. See the documentation
Emit new event when a new team is joined by the authenticated user. See the documentation
Create a new channel in Microsoft Teams. See the docs here
Get the list of shift instances for a team. See the documentation
Send a message to a team's channel. See the docs here
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 Microsoft Teams API on Pipedream allows you to automate tasks, streamline communication, and integrate with other services to enhance the functionality of Teams as a collaboration hub. With this API, you can send messages to channels, orchestrate complex workflows based on Teams events, and manage Teams' settings programmatically.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
microsoft_teams: {
type: "app",
app: "microsoft_teams",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://graph.microsoft.com/v1.0/me`,
headers: {
Authorization: `Bearer ${this.microsoft_teams.$auth.oauth_access_token}`,
},
})
},
})