标签: slack-api

在"只对您可见"的频道中发送消息

我无法在松弛的API文档中看到机器人在响应用户的通道中发送消息的方式.

这样slackbot做的回答方式相同/help.

有人可以告诉我这是否可能?

在此输入图像描述

请注意"仅对您可见".在RTM手册中,他们说这个消息与事件消息的类型相同.我没有看到任何可以说它仅对某个用户可见的属性.

slack-api

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

使用Poison将映射编码到JSON以与Slack一起使用

我正在使用Poison将地图编码为JSON,并将其发送到Slack API.这就是Poison给我的东西:

"{\"text\":\"changed readme fad996e98e04fd4a861840d92bdcbbcb1e1ec296\"}"
Run Code Online (Sandbox Code Playgroud)

当我把它放入JSON lint时,它说它是有效的JSON,但是Slack响应"无效的有效载荷".

如果我将JSON更改为这样

{"text":"changed readme fad996e98e04fd4a861840d92bdcbbcb1e1ec296"}
Run Code Online (Sandbox Code Playgroud)

然后它工作.有谁知道我在哪里出错?我是否需要对编码的JSON进行额外处理,或者是否需要设置一些标头?

这是我的控制器

def create(conn, opts) do
    message = Message.create_struct(opts)
    response = Slack.Messages.send(message)

    case response do
      {:ok, data} ->
        render conn, json: Poison.encode!(data)
      {:error, reason} ->
        render conn, json: reason
    end
end
Run Code Online (Sandbox Code Playgroud)

这是发送消息的库的一部分

defmodule Slack.Messages do

  def format_simple_message(map) do
    text = map.description <> " " <> map.commits
    message = %{text: text}
  end

  def post_to_slack(map) do
    Slack.post(:empty, map)
  end

  def send(map) do
    map
    |> format_simple_message
    |> post_to_slack
  end

end
Run Code Online (Sandbox Code Playgroud)

我的HTTPoison处理

defmodule …
Run Code Online (Sandbox Code Playgroud)

elixir slack-api elixir-poison

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

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
查看次数

如何在多个团队中安装bot而不将其添加到目录中?

我刚刚使用Microsoft bot框架在我的dev slack团队中创建了我的第一个slack bot.现在我想将机器人添加到另一个团队进行测试.我的机器人不会公开使用,只是公司内部的.我尝试使用Add to Slack按钮将其添加到新团队但我得到了:

OAuth错误:invalid_team_for_non_distributed_app.

谢谢.

bots slack-api

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

我从哪里获得 `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
查看次数

使用 Chrome 身份验证令牌 xoxc- 访问 Slack API

因此,最近我一直在研究 Slack API,并且想出了如何使用在 Chrome 中使用 Slack 时可用的密钥来访问 API。我可以访问 communications.history 方法并下载消息。有API经验的人知道这是否正常吗?为了能够使用应用程序或标准身份验证令牌访问 API(用户令牌的前缀为 xoxp- ,机器人令牌为 xoxb- ,工作区令牌为 xoxa-2 。我使用的令牌是 xoxc- 。)这似乎有点不安全,所以我的问题是,API 总是这样容易受到攻击吗?而且,我猜我不应该像这样访问它,并且想知道是否有人听说过有人因此陷入麻烦,或者它是否符合预期/可以?

authentication api oauth slack-api

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

如何通知 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
查看次数

你如何用懒散的机器人标记人?

我为松弛建立了一个机器人.它在新用户加入时读取消息,我打算发布一条消息欢迎他们:"欢迎@ 用户!你在建什么!?"

当它发布@ user时,似乎并不是真正的"标签"正在运行.我是否需要标记他们的用户ID,当我标记人僵尸,而不是仅仅使用@ 用户

fontebot尝试标记cristopher.bello但标签不起作用

slack-api slack

9
推荐指数
2
解决办法
8490
查看次数