Forum Discussion

ssywilson's avatar
ssywilson
Copper Contributor
Jun 25, 2021

How to set `You and moderator can reply` in bot when posting proactive message to channels?

Hi there, 

 

I am currently developing a bot that posts proactive message to channels. My client wants me to set `No reply` or `You and moderator can reply` on the message that posted from the bot proactively. 

 

What I tried so far:

// post message to channels
const credentials = new MicrosoftAppCredentials(process.env.MicrosoftAppId, process.env.MicrosoftAppPassword);
const client = new ConnectorClient(credentials, { baseUri: serviceUrl });
const message = MessageFactory.text(inMessage);

let approveResult = false;
let MessageActivityId = "";

const conversationParams = {
    isGroup: true,
    bot: {
        id: process.env.MicrosoftAppId,
        name: process.env.BotName
    },
    conversationType: 'channel',
    channelData: {
        channel: {
            id: teamsChannelId
        }
    },
    activity: message
};

const msRes = await client.conversations.createConversation(conversationParams).catch(e => console.log(e));

 

I tried to post the message first, and immediately update the activity and set the type as `ActivityTypes.EndOfConversation`. However, it doesn't work at all.

const tmpResult = await client.conversations.updateActivity(teamsChannelId, msRes.activityId, {type: ActivityTypes.EndOfConversation})

 

Error form above updateActivity code: 

RestError: Unknown activity type
at ...(skipped for paths)

{
    code: 'BadArgument',
    statusCode: 400,
    request: WebResource {
        streamResponseBody: false,
        url: 'https://{service_url}/{channel_id}/activities/{messageActivityId}',
        method: 'PUT',
        headers: HttpHeaders {
            _headersMap: [Object]
        },
        body: '{"type":"endOfConversation"}',
        query: undefined,
        formData: undefined,
        withCredentials: false,
        abortSignal: undefined,
        timeout: 0,
        onUploadProgress: undefined,
        onDownloadProgress: undefined,
        proxySettings: undefined,
        keepAlive: undefined,
        agentSettings: undefined,
        operationSpec: {
            httpMethod: 'PUT',
            path: 'v3/conversations/{conversationId}/activities/{activityId}',
            urlParameters: [Array],
            requestBody: [Object],
            responses: [Object],
            serializer: [Serializer]
        }
    },
    response: {
        body: '{"error":{"code":"BadArgument","message":"Unknown activity type"}}',
        headers: HttpHeaders {
            _headersMap: [Object]
        },
        status: 400
    },
    body: {
        error: {
            code: 'BadArgument',
            message: 'Unknown activity type'
        }
    }
}

 

Is there any method that allows me to do so? Thanks.

 

3 Replies

    • ssywilson's avatar
      ssywilson
      Copper Contributor

      Ravindra-MSFT Hi, I was following https://docs.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages?tabs=dotnet to send proactive messages to channels. However, I found that after the bot sends out the proactive message, the channel's chatroom will appear a `Reply` button right below the bot's message.

       

      Therefore, I want to ask is there any method to disable the `Reply` button?

       

      ----

       

      Simulation of expected behavior on UI:

       

      Simulation of actual behavior on UI:

Resources