我需要一个能够接收和保存来自松弛聊天室的文件的松散机器人.
问题是:slack不发送文件内容,而是指向文件的链接数组.其中大多数,包括下载链接都是私有的,无法通过bot访问.它确实发送了一个公共链接,但该链接指向文件预览,它没有文件本身(这是一个例子).
所以问题是:如何通过bot访问上传的文件?
我已经设法使用Google Apps脚本(GAS)创建了一个简单的交互式按钮Slack应用程序.
我知道如何用响应来替换原始消息,但我想只更换按钮,如Slack Interactive Button文档中所示(但没有清楚解释)多个位置:https:
//api.slack.com/文档/消息按钮#crafting_your_message
我想做这里演示的内容:https: //a.slack-edge.com/dcb1/img/api/message_guidelines/Example_6.gif
这是原始邮件的更新,用相同的文本替换原始邮件但附件不同,......?
我当前的交互式按钮消息代码如下所示:
function sendMsgWithButton() {
// slack channel url (where to send the message)
var slackUrl = "https://hooks.slack.com/services/...";
// message text
var messageData = {
"text": "Here's your interactive buttons message.",
"attachments": [
{
"text": "Can you click the button?",
"fallback": "Sorry, no support for buttons.",
"callback_id": "ptNotificationButtonResponse",
"color": "#3AA3E3",
"attachment_type": "default",
"actions": [
{
"name": "userResponse",
"text": "OK",
"style": "primary",
"type": "button",
"value": "ok"
}
]
} …Run Code Online (Sandbox Code Playgroud) 我正在编写一个简单的slack bot,它应该在被调用时执行其他slack命令.一切都已启动并运行,但是这个机器人问题的松弛命令似乎没有被执行.
例如,我的机器人/giphy kitten每小时发布一次,消息就像通道中的那样(因此发送方似乎有效),但是斜杠命令本身不会被执行.如果我自己将相同的命令发布到同一个频道,它会按预期工作.机器人不允许执行斜杠命令吗?
我目前正在使用Laravel构建Slack机器人,其中一个功能是它可以接收电子邮件地址并向其发送消息.
问题是电子邮件地址(例如bob@example.com)<mailto:bob@example.com|bob@example.com>来自Slack.
我目前有一个函数可以从中检索电子邮件:
public function getEmail($string)
{
$pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i';
preg_match_all($pattern, $string, $matches);
$matches = array_filter($matches);
return $matches[0][0];
}
Run Code Online (Sandbox Code Playgroud)
这似乎与电子邮件地址一样正常工作bob@example.com,但是在使用电子邮件地址时似乎失败了bob.jones@example.com(<mailto:bob.jones@example.com|bob.jones@example.com>在这种情况下,函数将jones@example.com作为电子邮件地址返回.)
我对正则表达式不是很好,但是我可以使用/改变我的模式,还是从Slack提供的字符串中获取电子邮件地址的更好方法?
试图找出一种方法来上传Markdown文件,使其成为频道中的格式化帖子.是否有API调用来执行此操作?
files.upload似乎只支持Markdown原始上传.
我想设置一个#emergency频道,其中重要的消息将来自传入的webhook并将包含@channel在其中.
我希望所有加入频道的人都可以立即看到这些通知,无论时间或他们的请勿打扰(DND)设置.
似乎除了"当前用户"(用户调用API调用)之外,没有API可以更改任何人的DND设置.否则,我会在发布消息之前关闭所有频道成员的DND,然后恢复原始DND设置.
还有其他方法可以确保DND不会停止此#emergency频道的通知吗?
加入#emergency频道的每个人都知道他们可能随时收到通知,因此这些通知不会出现意外情况.
(请注意,这不是与工作相关的Slack团队,它是一个社区组织,#emergency频道上的消息是关于真正的紧急情况.)
我们使用通信工具 Slack。它在我的左侧边栏中显示了我最近与之进行过直接消息对话的在线和离开用户。我想在列表中看到当前在线的每个人,我们 Slack 服务器上的所有在线用户。在聊天应用程序的侧边栏中有一个用户列表通常意味着在线用户,但不是因为 slack,这让我非常困惑,经常让我错误地认为用户不在线,当他们在线时,我只是没有发送最近直接给他们发消息。
谷歌搜索,搜索 slack 帮助并询问 slackbot 尚未为我提供任何答案。
是否可以激活此功能,或者是否有插件?
我最近正在使用Slack API,我的动机是通过调用Slack Incoming Web钩子提供的Web钩子在某个时间发送一个通道宽的消息.
我创建了一个Web钩子并从Slack获得了如下代码
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hey, Its time for meeting!! <#G5CERWGRG|hep_test>", "link_names" : 1}' HOOK_URL
Run Code Online (Sandbox Code Playgroud)
但我无法通过在消息中发送@channel来通知团队中的所有人,就像我们在正常的闲聊频道聊天中一样.如果我在curl消息中发送@channel,它会在聊天中显示为短信,而不是@channel链接.
我甚至尝试发送松弛通道id <#G5CERWGRG | hep_test>,如上面的curl请求所示.但是发布的消息并没有通知集团内的所有人.
注意:我希望保持我的频道通知偏好(仅在提及时通知)
注意
我正在构建一个简单的 Slack 机器人,并且正在使用该checkboxes元素。
当我从 API 以 JSON 响应返回以下内容到斜杠命令时,我收到错误failed with the error "invalid_blocks",但是,当我将其放入block-kit-builder中时,它可以正常工作(包括“发送到 slack”按钮)
当我运行斜杠命令时,有什么想法会失败吗?是否可以从 slack 中看到更详细的错误消息?
{
"blocks": [
{
"elements": [
{
"style": "primary",
"text": {
"emoji": true,
"text": "Create new TODO list",
"type": "plain_text"
},
"type": "button",
"value": "value"
},
{
"style": "primary",
"text": {
"emoji": true,
"text": "Help",
"type": "plain_text"
},
"type": "button",
"value": "value"
}
],
"type": "actions"
},
{
"text": {
"text": "Today",
"type": "mrkdwn"
},
"type": "section"
}, …Run Code Online (Sandbox Code Playgroud)