标签: slack

从 slack 回答 Jenkins 输入

我目前正在研究 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 中回答这个问题,有没有办法做到这一点?提前致谢。

jenkins slack-api devops slack jenkins-pipeline

11
推荐指数
1
解决办法
546
查看次数

在Web界面中预填充Slack消息

在Slack的Web界面中导航到Slack通道时,是否有URL参数或其他方法预先填充消息字段?

也就是说,用户可以在其浏览器中点击指向Slack频道的链接,并且在到达链接页面时,其部分消息已经写入但未发送.

slack

10
推荐指数
1
解决办法
309
查看次数

Slack PHP API - 避免超时错误

我正在尝试使用Slack Custom命令,并且不太确定如何使用延迟消息,因为Yoda Speak External API需要3秒以上的响应时间.

我做了以下事情:

  • /Yoda在我的情况下发送了slack命令并收到了reponse_url.
  • post对响应URL 使用以下内容.
$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)

在此输入图像描述

  • 现在,当我调用Yoda API时,它会出现以下错误"已达到超时".我读到延迟回复,但不知道我应该怎样从这里开始.
$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:> …
Run Code Online (Sandbox Code Playgroud)

php curl timeout slack-api slack

10
推荐指数
1
解决办法
4283
查看次数

Slack Webhook - 获取 Invalid_Payload

我正在尝试为 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)

request node.js slack-api slack

10
推荐指数
2
解决办法
2万
查看次数

在提出api请求时,slack bot范围缺失

我做了一个松散的应用程序,我有一个机器人.我选择了频道:历史,频道:阅读,频道:在我的许可范围内写作,我也通过了范围

"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?

谢谢!

scopes slack-api slack

10
推荐指数
1
解决办法
6972
查看次数

通过 webhooks 中的 slack 提及用户

我正在用 slack 构建一些集成 github,它将通知用户(拉取请求的审阅者)并在 #general 聊天中向他们发送链接。

我正在努力提及用户,现在我只找到一种方式来提及他们:通过usernameSlack,但是要知道这一点username,我必须请人给我。<@display_name>即使使用link_names: 1参数,提及 via似乎也不起作用。

python bots slack

10
推荐指数
1
解决办法
4448
查看次数

我从哪里获得 `thread_ts` 来启动带有传入 webhook 的 Slack 线程?

在 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 更容易做到这一点,那也可以。

slack-api slack

10
推荐指数
1
解决办法
3469
查看次数

如何创建包含上传图像的 Slack 消息?

我想通过 PHP 脚本在我的 Slackspace 的 #general 频道中创建一条消息。该消息应包含文本和本地即时创建的图像。

我已经创建了一个应用程序,生成了一个不记名令牌,并设法创建了一条纯文本消息也作为图像上传。

但我不知道如何在一条消息中创建两者,因为上面的过程创建了两条消息,一条带有文本,另一条带有图像。

php slack-api slack

10
推荐指数
2
解决办法
2万
查看次数

如何通知 Slack 上不在频道中的用户?

我们正在努力做什么

我正在研究自动化,它使用自定义 Slack 应用程序上的传入 Webhooks将消息发布到 Slack 通道。这些消息提到了人。

什么有效

我们可以很好地发送一条消息,它具有格式化的内容,并且使用link-names flag正确解析了用户名。

成功发布消息并标记人员

什么不起作用

通知的全部目的是告知一群动态的人们他们应该关心的事情。我们标记的人群差异很大(想想那些为拉取请求做出贡献的人),因此并非所有可能的收件人都在这些自动消息发送的渠道中。

我们假设,鉴于用户名被直接@提及,Slack 会通知他们。然而,我们测试过并@提及的两名用户确认他们从未收到过他们被标记的通知。

这与“人类”行为不同,如果您在 Slack 中@提及某人,您会收到一条小消息,提醒您该人不在该频道中,并提出邀请他们或让他们知道。

提及不在频道中的用户的示例

据我们所知,以编程方式发送消息相当于上图中的“不执行任何操作”。我想做其他两个选项之一,最好是“让他们知道”。

我如何通知人们他们被提及?我查看了所有 API 文档,没有讨论通知不在他们提到的频道中的用户。

这不是一个罕见的问题......对吧?

笔记:

  • 我们不是直接调用chat.postMessage,它只是我能找到链接到的关于 link_names 的唯一文档。我们正在使用 Incoming Webhooks,它对参数的文档很少 - 它似乎与chat.postMessage.
  • 我们不想删除传入的 Webhooks,但如果需要,我们可以与 API 进行自定义集成。

slack-api slack

10
推荐指数
1
解决办法
2697
查看次数

如何在 Slack 的线程中使用自定义斜杠命令

我已经使用 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

欢迎任何建议。

javascript slack-api slack

10
推荐指数
1
解决办法
3479
查看次数