松弛机器人使用aws lambda函数向用户发送直接消息

你好,世界

我正在尝试使用slack web api向用户发送直接消息,但是我认为获取所有可用用户的getSlackUser方法在我调用slackId时无法及时完成。

console.log(slackId)给出了未定义的含义,它没有用bolt完成我的api调用

我如何确保getSlackUser方法完成(使其阻塞),然后再继续进行?

const { WebClient } = require('@slack/web-api');
const { App } = require('@slack/bolt')

const rtm = new RTMClient(process.env.SLACK_OAUTH_TOKEN);
const web = new WebClient(process.env.SLACK_OAUTH_TOKEN);
const app = new App({
  token: process.env.SLACK_OAUTH_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET
});


exports.handler = async (event) => {
  const slackId = await getSlackUser('example_real_name').id;
  console.log(slackId);
  await sendSlackMessage(slackId, 'Bot message');
}


sendSlackMessage = async (channel, message) => {
  await web.chat.postMessage({
    channel: channel,
    text: message,
    as_user: true
  });
}

getSlackUser = async(real_name) => {
  const result = await app.client.users.list({
    token: process.env.SLACK_OAUTH_TOKEN
  });
  console.log(result);
  return result.members.find((user) => user.real_name == real_name);
}
塔玛斯·萨莱(TamásSallai)

问题是此行的优先级:

const slackId = await getSlackUser('example_real_name').id;

由于成员访问的优先级(评估前)比等待优先级高,因此它实际上与以下各项相同:

const slackId = await (getSlackUser('example_real_name').id);

getSlackUser返回Promise对象,则其id成员未定义。Await等待未定义的undefined

要解决此问题,请确保在之前评估await .id

const slackId = (await getSlackUser('example_real_name')).id;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SignalR-使用UserID提供程序向用户发送消息

来自分类Dev

松弛机器人如何激活

来自分类Dev

松弛:已发送邮件中的机器人名称

来自分类Dev

验证机器人消息发布事件中的松弛用户

来自分类Dev

在Teams中使用Azure机器人服务:如何将文件发送到机器人

来自分类Dev

如何使chatbot(机器人框架)从任何文件夹向用户(NodeJS)发送附件文件?

来自分类Dev

使用机器人将消息发布到Slack

来自分类Dev

使用Graph API在Microsoft Teams的机器人通道中以机器人的身份向用户发送消息

来自分类Dev

松弛的交互式消息未触发我的机器人上的发布请求

来自分类Dev

如何使用命令示例使我的机器人ping一个人:!吃@我想要的用户,机器人:@用户已被吃掉

来自分类Dev

如何使用aspnet核心SignalR向用户发送私人消息?

来自分类Dev

如何使机器人使用discord.js ping用户

来自分类Dev

Python Discord机器人| 如何使用用户输入?

来自分类Dev

我的Discord机器人正在使用discord.js一次发送多条消息

来自分类Dev

松弛机器人如何激活

来自分类Dev

如何使用电报内联机器人发送消息

来自分类Dev

验证机器人消息发布事件中的松弛用户

来自分类Dev

聊天机器人的Facebook消息

来自分类Dev

电报机器人发送消息

来自分类Dev

如何从通过网络钩子发送的消息执行松弛机器人?

来自分类Dev

Facebook 机器人摆脱默认消息

来自分类Dev

AWS Lambda 和 Messenger 聊天机器人无限循环

来自分类Dev

从机器人向用户发送相同的图像以防止下载两次

来自分类Dev

删除某些消息机器人发送

来自分类Dev

使用 Discord.py 制作一个在预定日期发送消息的机器人

来自分类Dev

使用机器人框架向 slack 发送主动消息

来自分类Dev

聊天机器人的默认消息

来自分类Dev

如何使用 discord.js 机器人 dm 用户

来自分类Dev

电报机器人:使用 python 发送照片方法

Related 相关文章

  1. 1

    SignalR-使用UserID提供程序向用户发送消息

  2. 2

    松弛机器人如何激活

  3. 3

    松弛:已发送邮件中的机器人名称

  4. 4

    验证机器人消息发布事件中的松弛用户

  5. 5

    在Teams中使用Azure机器人服务:如何将文件发送到机器人

  6. 6

    如何使chatbot(机器人框架)从任何文件夹向用户(NodeJS)发送附件文件?

  7. 7

    使用机器人将消息发布到Slack

  8. 8

    使用Graph API在Microsoft Teams的机器人通道中以机器人的身份向用户发送消息

  9. 9

    松弛的交互式消息未触发我的机器人上的发布请求

  10. 10

    如何使用命令示例使我的机器人ping一个人:!吃@我想要的用户,机器人:@用户已被吃掉

  11. 11

    如何使用aspnet核心SignalR向用户发送私人消息?

  12. 12

    如何使机器人使用discord.js ping用户

  13. 13

    Python Discord机器人| 如何使用用户输入?

  14. 14

    我的Discord机器人正在使用discord.js一次发送多条消息

  15. 15

    松弛机器人如何激活

  16. 16

    如何使用电报内联机器人发送消息

  17. 17

    验证机器人消息发布事件中的松弛用户

  18. 18

    聊天机器人的Facebook消息

  19. 19

    电报机器人发送消息

  20. 20

    如何从通过网络钩子发送的消息执行松弛机器人?

  21. 21

    Facebook 机器人摆脱默认消息

  22. 22

    AWS Lambda 和 Messenger 聊天机器人无限循环

  23. 23

    从机器人向用户发送相同的图像以防止下载两次

  24. 24

    删除某些消息机器人发送

  25. 25

    使用 Discord.py 制作一个在预定日期发送消息的机器人

  26. 26

    使用机器人框架向 slack 发送主动消息

  27. 27

    聊天机器人的默认消息

  28. 28

    如何使用 discord.js 机器人 dm 用户

  29. 29

    电报机器人:使用 python 发送照片方法

热门标签

归档