我目前正在研究 Jenkins 与 Slack 之间的集成,我想从 slack 中完全控制 Jenkins,基本上,我想触发作业,并且我想回答输入(如果存在)。例如
pipeline{
agent any
stages{
stage('Test Notification success stage'){
steps{
script{
env.createofflinepkg = input message: 'User input required',
ok: 'Submit',
parameters: [choice(name: 'Create Offline Package', choices: "Create\nSkip", description: 'Create Offline Package or Skip')]
}
slackSend (channel: 'input-response',color: '#ffff00', message: "Yellow at general : Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望将其发送到 slack,然后我可以从 slack 中回答这个问题,有没有办法做到这一点?提前致谢。
在Slack的Web界面中导航到Slack通道时,是否有URL参数或其他方法预先填充消息字段?
也就是说,用户可以在其浏览器中点击指向Slack频道的链接,并且在到达链接页面时,其部分消息已经写入但未发送.
我正在尝试使用Slack Custom命令,并且不太确定如何使用延迟消息,因为Yoda Speak External API需要3秒以上的响应时间.
我做了以下事情:
/Yoda在我的情况下发送了slack命令并收到了reponse_url.post对响应URL 使用以下内容.Run Code Online (Sandbox Code Playgroud)$data_string = '{"response_type": "in_channel", "text":"Checking,please wait..."}' ; $chs = curl_init(); curl_setopt($chs, CURLOPT_URL, $response_url); curl_setopt($chs, CURLOPT_POST, true); curl_setopt($chs, CURLOPT_POSTFIELDS, $data_string); curl_setopt($chs, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($chs, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($chs, CURLOPT_RETURNTRANSFER, true); curl_setopt($chs, CURLOPT_POST, 1); curl_setopt($chs, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $results = curl_exec($chs);
Run Code Online (Sandbox Code Playgroud)$chsres = curl_init(); curl_setopt($chsres, CURLOPT_URL, "https://yoda.p.mashape.com/yoda?sentence=welcome+to+stack"); curl_setopt($chsres, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($chsres, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($chsres, CURLOPT_VERBOSE, true); curl_setopt($chsres, CURLOPT_TIMEOUT, 45); curl_setopt($chsres, CURLOPT_RETURNTRANSFER, true); curl_setopt($chsres, CURLOPT_HTTPHEADER, array('Content-Type:application/json', "X-Mashape-Key:> …
我正在尝试为 Slack 设置一个 webhook,但收到“Invalid_Payload”的错误消息
我已经浏览了 Stack、Slack 和 Github ……但找不到我想要的答案。
“CustomLink”在那里用于隐私,实际链接开始使用。
代码:
var request = require('request')
var webhook = "https://hooks.slack.com/services/CUSTOMLINK"
var payload={"text":"This is via an integration from Me - It is a test"}
request.post({url: webhook, payload: payload}, function(err, res){
if(err){console.log(err)}
if(res){console.log(res.body)}
})
Run Code Online (Sandbox Code Playgroud)
错误:
invalid_payload
Run Code Online (Sandbox Code Playgroud) 我做了一个松散的应用程序,我有一个机器人.我选择了频道:历史,频道:阅读,频道:在我的许可范围内写作,我也通过了范围
"scope":"bot channel:history channel:read channel:write"
在进行我的oauth2验证(使用python)时,我得到了范围的响应
"scope":"identify,bot,channels:history,channels:read,channels:write"
Run Code Online (Sandbox Code Playgroud)
以及客户端和机器人访问令牌.
现在,当我进行api调用以获取我的机器人被邀请的频道的历史记录时,我得到了
{
ok: false,
error: 'missing_scope',
needed: 'channels:history',
provided: 'identify,bot:basic'
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我哪里出错了.我怎样才能PROVIDE渠道:历史范围在我的API调用.这真让我疯了.我应该使用客户端访问令牌,即xoxp-xxxx,而不是机器人令牌,即xoxb-xxxx?
谢谢!
我正在用 slack 构建一些集成 github,它将通知用户(拉取请求的审阅者)并在 #general 聊天中向他们发送链接。
我正在努力提及用户,现在我只找到一种方式来提及他们:通过usernameSlack,但是要知道这一点username,我必须请人给我。<@display_name>即使使用link_names: 1参数,提及 via似乎也不起作用。
在 Slack 的传入 webhook文档中,他们提到thread_ts在请求正文中包含 以启动线程。
{
"text": "Hello, world.",
"thread_ts": "12345.6789"
}
Run Code Online (Sandbox Code Playgroud)
当我向传入的 webhook url 发出 POST 请求时,响应正文不包含thread_ts. 我期待thread_ts在响应正文中,但响应正文只是说ok并且不包含任何 json。
是否可以在thread_ts没有其他应用程序或身份验证令牌的情况下获得?我是否必须使用另一个 Slack API?我现在只配置了传入的 webhook。
附带说明一下,如果使用 Slack 的新 Block Kit API 更容易做到这一点,那也可以。
我想通过 PHP 脚本在我的 Slackspace 的 #general 频道中创建一条消息。该消息应包含文本和本地即时创建的图像。
我已经创建了一个应用程序,生成了一个不记名令牌,并设法创建了一条纯文本消息也作为图像上传。
但我不知道如何在一条消息中创建两者,因为上面的过程创建了两条消息,一条带有文本,另一条带有图像。
我们正在努力做什么
我正在研究自动化,它使用自定义 Slack 应用程序上的传入 Webhooks将消息发布到 Slack 通道。这些消息提到了人。
什么有效
我们可以很好地发送一条消息,它具有格式化的内容,并且使用link-names flag正确解析了用户名。
什么不起作用
通知的全部目的是告知一群动态的人们他们应该关心的事情。我们标记的人群差异很大(想想那些为拉取请求做出贡献的人),因此并非所有可能的收件人都在这些自动消息发送的渠道中。
我们假设,鉴于用户名被直接@提及,Slack 会通知他们。然而,我们测试过并@提及的两名用户确认他们从未收到过他们被标记的通知。
这与“人类”行为不同,如果您在 Slack 中@提及某人,您会收到一条小消息,提醒您该人不在该频道中,并提出邀请他们或让他们知道。
据我们所知,以编程方式发送消息相当于上图中的“不执行任何操作”。我想做其他两个选项之一,最好是“让他们知道”。
我如何通知人们他们被提及?我查看了所有 API 文档,没有讨论通知不在他们提到的频道中的用户。
这不是一个罕见的问题......对吧?
笔记:
chat.postMessage,它只是我能找到链接到的关于 link_names 的唯一文档。我们正在使用 Incoming Webhooks,它对参数的文档很少 - 它似乎与chat.postMessage.我已经使用 slack 设置了自定义斜杠命令/news,它工作正常,但我找不到通过线程使用触发斜杠命令的方法。
我收到以下错误: /news is not supported in threads. Sorry!
我浏览了 slack api 文档,但似乎找不到它。我知道这是可能的,因为我/giphy安装了该应用程序并且可以在线程中使用它。
我找到了这篇文章,但它并没有真正的帮助。 https://medium.com/slack-developer-blog/bringing-your-bot-into-threaded-messages-cd272a42924f
欢迎任何建议。