PipedreamHQ/pipedream

[ACTION] Microsoft Teams Bot - Reply to Message

Open

#14,758 opened on Nov 27, 2024

View on GitHub
 (10 comments) (0 reactions) (1 assignee)JavaScript (5,305 forks)batch import
actionenhancementgood first issuehelp wantedtriaged

Repository metrics

Stars
 (7,438 stars)
PR merge metrics
 (Avg merge 9d 7h) (131 merged PRs in 30d)

Description

Is there a specific app this action is for? Microsoft Teams Bot

Example workflow for testing: https://pipedream.com/@pd-component-dev/projects/proj_mJs6Ybr/ms-teams-bot-p_WxCWqBN/build

API Documentation: https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-quickstart?view=azure-bot-service-4.0#reply-to-the-users-message

Example working code:

import { axios } from "@pipedream/platform"

export default {
  props: {
    microsoft_teams_bot: {
      type: "app",
      app: "microsoft_teams_bot",
    }
  },
  async run({steps, $}) {
    // Get the incoming message data
    const incomingMessage = steps.trigger.event.body;
    
    const data = {
      type: "message",
      from: {
        id: incomingMessage.recipient.id,
        name: incomingMessage.recipient.name
      },
      conversation: {
        id: incomingMessage.conversation.id
      },
      recipient: {
        id: incomingMessage.from.id,
        name: incomingMessage.from.name
      },
      text: "Hello! I received your message: " + incomingMessage.text,
      replyToId: incomingMessage.id
    };

    return await axios($, {
      url: `${incomingMessage.serviceUrl}/v3/conversations/${incomingMessage.conversation.id}/activities/${incomingMessage.id}`,
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${this.microsoft_teams_bot.$auth.oauth_access_token}`,
        'Content-Type': 'application/json'
      },
      data,
    });
  },
}

Contributor guide