Skip to main content
Glama

mcp-google-sheets

create-chat-and-send-message.ts2.56 kB
import { microsoftTeamsAuth } from '../../'; import { createAction, Property } from '@activepieces/pieces-framework'; import { Client } from '@microsoft/microsoft-graph-client'; import { microsoftTeamsCommon } from '../common'; import { isNil } from '@activepieces/shared'; import { Chat } from '@microsoft/microsoft-graph-types'; export const createChatAndSendMessageAction = createAction({ auth: microsoftTeamsAuth, name: 'microsoft_teams_create_chat_and_send_message', displayName: 'Create Chat & Send Message', description: 'Start a new chat and send an initial message.', props: { teamId: microsoftTeamsCommon.teamId, members:microsoftTeamsCommon.memberIds(true), contentType: Property.StaticDropdown({ displayName: 'Message Content Type', required: true, defaultValue: 'text', options: { disabled: false, options: [ { label: 'Text', value: 'text' }, { label: 'HTML', value: 'html' }, ], }, }), content: Property.LongText({ displayName: 'Initial Message', required: true, }), }, async run(context) { const { members, contentType, content } = context.propsValue; if (isNil(members)) { throw new Error('For one-on-one chats, provide exactly one other member.'); } const client = Client.initWithMiddleware({ authProvider: { getAccessToken: () => Promise.resolve(context.auth.access_token), }, }); // Resolve current user to include as a member const me = await client.api('/me').select('id,userPrincipalName').get(); const currentUserBind = `https://graph.microsoft.com/v1.0/users('${me.id}')`; // Parse provided members const otherMembersRaw: string[] = members.map((member)=>`https://graph.microsoft.com/v1.0/users('${member}')`) const membersPayload = [ { '@odata.type': '#microsoft.graph.aadUserConversationMember', roles: ['owner'], 'user@odata.bind': currentUserBind, }, ...otherMembersRaw.map((m) => ({ '@odata.type': '#microsoft.graph.aadUserConversationMember', roles: ['owner'], 'user@odata.bind': m, })), ]; const chatBody: Chat = { chatType: otherMembersRaw.length ===1 ? 'oneOnOne':'group', members: membersPayload, }; // Create or get existing chat const chat = await client.api('/chats').post(chatBody); // Send initial message const chatMessage = { body: { content: content, contentType: contentType, }, }; const messageResponse = await client.api(`/chats/${chat.id}/messages`).post(chatMessage); return { chat, message: messageResponse, }; }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server