Home > Software engineering >  Directline Webchat html code store values not coming to onmessage or onmember added
Directline Webchat html code store values not coming to onmessage or onmember added

Time:09-14

We are trying to implement the Webchat and add some extra values like IP address, browser details etc.

Adding these values using

if (action.type === 'DIRECT_LINE/POST_ACTIVITY') {
            dispatch({
                type: 'WEB_CHAT/SEND_EVENT',
                payload: {
                    name: 'start-chat',
                    value: {
                        "browser": Browser,
                        "ipAddress": ipAddress,
                        "location": Location,
                        "phoneNumber":sessiondata.phone_number
                    }
                }
            });
        }
these values are coming in request and context.activity also

{
  type: 'event',
  id: '**********',
  timestamp: 2022-09-13T11:37:27.491Z,
  localTimestamp: 2022-09-13T11:37:27.282Z,
  localTimezone: 'Asia/Calcutta',
  serviceUrl: 'https://directline.botframework.com/',
  channelId: 'directline',
  from: { id: '******', name: 'name', role: 'user' },
  conversation: { id: '********' },
  recipient: { id: '*******', name: '******' },
  locale: 'en-US',
  entities: [
    {
      type: 'ClientCapabilities',
      requiresBotState: true,
      supportsListening: true,
      supportsTts: true
    }
  ],
  channelData: {
    clientActivityID: '*******',
    clientTimestamp: '2022-09-13T11:37:27.282Z'
  },
  value: {
    browser: 'Chrome',
    ipAddress: '*******',
    location: 'Payyanur,Kerala,India',
    phoneNumber: '11111'
  },
  name: 'start-chat'
}

but these values are not coming to onmemberadded or onmessage context. Can someone help on this?

What are the possible values on the action.type like 'DIRECT_LINE/POST_ACTIVITY'

CodePudding user response:

You are posting an activity using the 'WEB_CHAT/SEND_EVENT' type which means the activity received by the bot will be of an event type.

To capture the incoming event activity, you need to configure you bot with the onEvent() activity handler.

this.onEvent(async (context, next) => {
  console.log('Event activity detected');

  // do stuff

  await next();
});
  • Related