标签: slack-api

如何在Slack中使用Hubot

这似乎是一个愚蠢的问题.

我已经将Hubot部署到Heroku并根据Slack设置了这条指令给出的配置.但是我不知道Hubot是否应该出现在我的团队中.我可以通过REST发布消息,日志显示收到消息.

如果Hubot成为团队中的成员,我可以直接发送消息或者我遗漏了什么?

heroku hubot slack-api

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

你如何在Slack的hubot cron脚本中提及用户,如果他们的通知设置打开,他们可以将其视为通知?

我有这个hubot-cron脚本为Slack设置了heroku.只有一个例外,效果很好.如果你在Slack中'@'某人(提及),用户将收到通知,具体取决于他们的通知设置.这样写的方式,如果在命令文本中放入用户名,Slack不会将其注册为用户,只是文本.

例如:

hubot新工作2*****"@everyone testing"

如果每两分钟发布一次,它可能会写@everyone,但Slack并不认为它实际上是'@everyone'.

使用此代码可以做什么,以便您可以将作业实际指向@user?

# Description:
#   register cron jobs to schedule messages on the current channel
#
# Commands:
#   hubot new job "<crontab format>" <message> - Schedule a cron job to say something
#   hubot new job <crontab format> "<message>" - Ditto
#   hubot new job <crontab format> say <message> - Ditto
#   hubot list jobs - List current cron jobs
#   hubot remove job <id> - remove job
#   hubot remove job with message <message> …
Run Code Online (Sandbox Code Playgroud)

cron hubot slack-api

12
推荐指数
1
解决办法
3038
查看次数

使用松弛的API发布图像

我试图用松弛的API发布图像.我目前有两个API打开(使用python),这是rtm和slackbot.

sc = SlackClient(API_KEY)
sc.api_call('chat.postMessages', channel=, text=) #post as bot

sc.rtm_connect():
sc.rtm_send_message(channel=..., message=...) #post as desired user
Run Code Online (Sandbox Code Playgroud)

这些示例可以很好地将文本发布到频道,但我需要将图像发布到频道.

我想使用rtm_*方法发布图像,但我无法弄清楚如何.我在图片中看到的唯一参考是https://api.slack.com/docs/attachments,但我没有看到使用rtm API的方法.

任何帮助表示赞赏.TIA.

更新/编辑:

所以我尝试使用Jon推荐的方法,这是:

sc.api_call("chat.postMessage", channel='D0K7P9MCJ', text='postMessage test',
            attachments='[{"image_url":"http://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"}]')
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用(没有发布图像)并且不会抛出任何错误.

我通过在附件部分中包含标题来实现此目的.希望它抛出一个错误,= /

python slack-api slack

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

如何使用Slack API发送"@here"?

我知道我可以标记用户,<@U423DFDE|username>但我无法弄清楚如何标记@here

tags api slack-api slack

12
推荐指数
2
解决办法
2278
查看次数

同时"添加到Slack"和"使用Slack登录"

我正在开发一个Slack应用程序,该应用程序也链接到一个Web应用程序,用户可以使用Slack登录.这是很常见的一个新用户既需要登录到Web应用程序,并添加该应用懈怠.

我想通过OAuth一次性让他们这样做.由于Web应用程序需要每个用户的姓名,电子邮件地址和个人资料图片,因此我将"identity.basic","identity.email"等范围添加到"Add to Slack"按钮请求的范围内.但事实证明,Slack不允许这样做.Slack OAuth页面显示" 请求的权限无效:无法同时请求身份范围和其他范围".

一种替代方案可能是请求用户:read和users:read.email范围而不是标识范围.但是,这为我们的应用提供了超出其需求的访问权 它只需要当前用户的信息,而不是团队中的所有用户.(它可能稍后需要所有用户的信息,所以无论如何我都在考虑这样做,但我不确定用户是否会喜欢它.)

另一种选择似乎是让用户通过两个不同的OAuth权限屏幕.但这似乎很麻烦,而且用户体验也不好.

所以问题是(1)是否有更好的方法,以及(2)为什么Slack不允许将身份范围与其他范围相结合?

更新以澄清,以回应@ erik-kalkoken的回答:

我知道"Add to Slack"和"Sign with with Slack"之间的区别.我当然不打算取消大多数用户做一个简单的"用Slack登录"的选项.但是,对于这个特定的应用程序,没有登录到Web应用程序就做"添加到Slack"是没有意义的.这需要由每个Slack团队的一个人完成,然后该团队的其他用户才能使用它.我们对新团队的入职流程有点麻烦,我正在寻找方法让它变得更简单,更顺畅.由于登录和添加步骤理论上可以合并为一个步骤,我宁愿这样做.

部分原因可能是因为我们没有开发"Slack app"; 我们正在为Web应用程序开发Slack集成.Web应用程序可以在不使用Slack的情况下使用,并且具有自己的用户和社区概念.

oauth slack-api slack

12
推荐指数
1
解决办法
1538
查看次数

如何在应用程序频道中将直接消息作为应用程序发送给用户

如何通过user.id作为应用程序直接向用户发送消息. 在此输入图像描述

这个应用程序的范围:bot,channels:write,emoji:read,users:read,users:read.email

我发现如何只发送消息作为DM或webhooks,但没有范围.有谁有想法?

slack-api slack

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

slack bot 如何找到自己的 id?

我正在编写一个 slack bot 来侦听频道中的所有消息。他的回应应该根据消息是否提到他而有所不同。问题是我不知道如何“正确”找出机器人的 id。该机器人订阅了message.channels事件,当有人发布提及该机器人的消息时,我得到以下信息:

{"client_msg_id":"b94dcc57-d640-4815-9eeb-23c048564bf0",
 "type":"message",
 "text":"<@UFT98YYYY> how are you?",
 "user":"UD45QXXXX",
 "ts":"1548958008.003400",
 "channel":"CFK3AZZZZ",
 "event_ts":"1548958008.003400",
 "channel_type":"channel"}
Run Code Online (Sandbox Code Playgroud)

知道UFT98YYYYbot 的 id的正确方法是什么?当然有办法解决这个问题(查看日志,在配置中设置 bot 的 id),但它们看起来很丑陋、脆弱,并且在安装 bot 时需要一些额外的步骤。机器人是否可以使用 Slack API 调用来查找其 ID?

顺便说一句,我知道我只能订阅提及,但我也需要倾听和回应未提及的消息。

slack-api slack

12
推荐指数
1
解决办法
4674
查看次数

Slack机器人无法通过chat.postMessage将消息发送到受限制的常规频道

这是我第一次尝试创建一个松弛的bot,我将这个模板代码添加到单词上,我没有做任何更改,只是在出现故障时重新混合,正确地复制粘贴了auth令牌,一切正常。直到我将#general频道限制为Full Member用户为止。

这是我在故障日志中看到的错误。

PostMessage Error: restricted_action

除了之外,我还需要设置其他范围bot吗?在此处输入图片说明

这是工作空间的用户权限,我是该工作空间的所有者。 工作区用户权限

这是代码:

const postAnnouncementToChannel = (user, announcement) => {
  const { title, details, channel } = announcement;

  let announcementData = {
    token: process.env.SLACK_ACCESS_TOKEN,
    channel: channel,
    text: `:loudspeaker: Announcement from: <@${user}>`,
    attachments: JSON.stringify([
      {
        title: title,
        text: details,
        footer: 'DM me to make announcements.'
      }
    ])
  };
  send(announcementData, user);
}


const send = async(data) => { 
  data.as_user = true; // send DM as a bot, not Slackbot
  const …
Run Code Online (Sandbox Code Playgroud)

node.js slack-api slack

12
推荐指数
2
解决办法
279
查看次数

如何让 slack api block kit 占据整个 slack 窗口的宽度?

我正在为一些自动通知创建一个 slackbot,我收到了一个请求,让通知占据整个 slack 窗口的宽度,这看起来更干净。我发现块似乎占据了指定的宽度,并且不会水平拉伸超过该点。我想知道是否有一种解决方法可以消除似乎正在发生的最大宽度

当前实现:似乎有一个未指定的最大宽度

理想情况下它最终看起来像这样

我使用这样的东西作为我的格式块:

{
    "type": "section",
    "text": {
        "type": "mrkdwn",
        "text": "Testing if a longer message will force the update box to be wider Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. …
Run Code Online (Sandbox Code Playgroud)

slack-api

12
推荐指数
2
解决办法
2583
查看次数

在不同的 chrome 配置文件中打开 Slack 链接(用户)

假设我有两个 chrome 用户,其中一个使用我的工作帐户登录,另一个使用我的个人帐户登录。

我使用 chrome 个人帐户中的个人帐户登录了我的 GitHub/StackOverflow 等帐户。在工作用户中,我使用我的工作帐户登录。chrome 是我机器上的默认浏览器。我需要的是,当 slack 上发布了一个链接时,我可以选择这个选项来选择我想要用哪个用户打开它。它可能发生在松弛级别,第二级别可能是浏览器级别,在打开链接之前询问我想要打开链接的用户。

我在这里问这个问题是因为我觉得这个要求不仅仅是我的,而且很多人都有相同的偏好。

我找到了一些选项,例如 browserchooser2Account Surfer适用于 Windows 操作系统,但我没有找到适用于MacOS的任何选项。

还有其他方法可以实现处理这个问题的方法吗?

非常感谢您与我分享有关此的信息。

google-chrome-extension slack-api slack

12
推荐指数
1
解决办法
4402
查看次数

标签 统计

slack-api ×10

slack ×7

hubot ×2

api ×1

cron ×1

google-chrome-extension ×1

heroku ×1

node.js ×1

oauth ×1

python ×1

tags ×1