codecamp

OpenClaw 通过 Gateway 网关 + CLI 发送投票

投票

支持的渠道

  • WhatsApp(Web 渠道)
  • Discord
  • MS Teams(Adaptive Cards)

CLI

## WhatsApp
openclaw message poll --target +15555550123 \
  --poll-question "Lunch today?" --poll-option "Yes" --poll-option "No" --poll-option "Maybe"
openclaw message poll --target 123456789@g.us \
  --poll-question "Meeting time?" --poll-option "10am" --poll-option "2pm" --poll-option "4pm" --poll-multi


## Discord
openclaw message poll --channel discord --target channel:123456789 \
  --poll-question "Snack?" --poll-option "Pizza" --poll-option "Sushi"
openclaw message poll --channel discord --target channel:123456789 \
  --poll-question "Plan?" --poll-option "A" --poll-option "B" --poll-duration-hours 48


## MS Teams
openclaw message poll --channel msteams --target conversation:19:abc@thread.tacv2 \
  --poll-question "Lunch?" --poll-option "Pizza" --poll-option "Sushi"

选项:

  • --channelwhatsapp(默认)、discordmsteams
  • --poll-multi:允许选择多个选项
  • --poll-duration-hours:仅限 Discord(省略时默认为 24)

Gateway 网关 RPC

方法:poll

参数:

  • to(字符串,必需)
  • question(字符串,必需)
  • options(字符串数组,必需)
  • maxSelections(数字,可选)
  • durationHours(数字,可选)
  • channel(字符串,可选,默认:whatsapp
  • idempotencyKey(字符串,必需)

渠道差异

  • WhatsApp:2-12 个选项,maxSelections 必须在选项数量范围内,忽略 durationHours
  • Discord:2-10 个选项,durationHours 限制在 1-768 小时之间(默认 24)。maxSelections > 1 启用多选;Discord 不支持严格的选择数量限制。
  • MS Teams:Adaptive Card 投票(由 OpenClaw 管理)。无原生投票 API;durationHours 被忽略。

智能体工具(Message)

使用 message 工具的 poll 操作(topollQuestionpollOption,可选 pollMultipollDurationHourschannel)。

注意:Discord 没有"恰好选择 N 个"模式;pollMulti 映射为多选。 Teams 投票以 Adaptive Cards 形式渲染,需要 Gateway 网关保持在线 以将投票记录到 ~/.openclaw/msteams-polls.json

OpenClaw 通过 gogcli 将 Gmail Pub/Sub 推送接入 OpenClaw webhooks
OpenClaw 监控模型提供商的 OAuth 过期状态
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenClaw 消息渠道

OpenClaw 工具

OpenClaw 模型

OpenClaw 平台

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }