with Slack Bot and Playwright?
Emit new event when a message is posted in a direct message channel (Bot). To open a conversation, use the Pipedream Action "Send a Direct Message" to send a message from the Bot, or enable direct messages to the Bot in your App Settings (Settings->App Home->Show Tabs->Messages Tab), and send a direct message to the Bot.
Emit new event when a new message is posted to a public, private or group channel (Bot)
The Slack Bot API allows you to build rich, interactive bots for Slack workspaces. These bots can respond to messages, post updates, and interact with users in various ways. With the Slack Bot API on Pipedream, developers can create automated workflows that trigger on specific events in Slack, such as new messages or reactions, and then perform defined actions, like sending data to other apps or processing the information within Pipedream's serverless platform. This tight integration with Pipedream enables both simple and complex automations, leveraging Pipedream's ability to connect with numerous apps and its powerful built-in code steps.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
slack_bot: {
type: "app",
app: "slack_bot",
},
},
async run({steps, $}) {
return await axios($, {
url: `https://slack.com/api/auth.test`,
headers: {
Authorization: `Bearer ${this.slack_bot.$auth.bot_token}`,
},
method: 'post',
})
},
})
Playwright is a Node.js library which provides a high-level API to control Chrome/Chromium over the DevTools Protocol. Playwright runs in headless mode on Chromium on Pipedream.
Using Playwright you can perform tasks including:
import { playwright } from '@pipedream/browsers';
export default defineComponent({
async run({steps, $}) {
const browser = await playwright.launch();
// Interact with the web page programmatically
// See Playwright's Page documentation for available methods:
// https://playwright.dev/docs/api/class-page
const page = await browser.newPage();
await page.goto('https://pipedream.com/');
const title = await page.title();
const content = await page.content();
// Close context and browser otherwise the step will hang
await page.context().close()
await browser.close();
return { title, content }
},
})