这似乎是一个愚蠢的问题.
我已经将Hubot部署到Heroku并根据Slack设置了这条指令给出的配置.但是我不知道Hubot是否应该出现在我的团队中.我可以通过REST发布消息,日志显示收到消息.
如果Hubot成为团队中的成员,我可以直接发送消息或者我遗漏了什么?
我有这个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) 我试图用松弛的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)
但这似乎不起作用(没有发布图像)并且不会抛出任何错误.
解
我通过在附件部分中包含标题来实现此目的.希望它抛出一个错误,= /
我知道我可以标记用户,<@U423DFDE|username>但我无法弄清楚如何标记@here
我正在开发一个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的情况下使用,并且具有自己的用户和社区概念.
这个应用程序的范围:bot,channels:write,emoji:read,users:read,users:read.email
我发现如何只发送消息作为DM或webhooks,但没有范围.有谁有想法?
我正在编写一个 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?
顺便说一句,我知道我只能订阅提及,但我也需要倾听和回应未提及的消息。
这是我第一次尝试创建一个松弛的bot,我将这个模板代码添加到单词上,我没有做任何更改,只是在出现故障时重新混合,正确地复制粘贴了auth令牌,一切正常。直到我将#general频道限制为Full Member用户为止。
这是我在故障日志中看到的错误。
PostMessage Error: restricted_action
这是代码:
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) 我正在为一些自动通知创建一个 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) 假设我有两个 chrome 用户,其中一个使用我的工作帐户登录,另一个使用我的个人帐户登录。
我使用 chrome 个人帐户中的个人帐户登录了我的 GitHub/StackOverflow 等帐户。在工作用户中,我使用我的工作帐户登录。chrome 是我机器上的默认浏览器。我需要的是,当 slack 上发布了一个链接时,我可以选择这个选项来选择我想要用哪个用户打开它。它可能发生在松弛级别,第二级别可能是浏览器级别,在打开链接之前询问我想要打开链接的用户。
我在这里问这个问题是因为我觉得这个要求不仅仅是我的,而且很多人都有相同的偏好。
我找到了一些选项,例如 browserchooser2和Account Surfer适用于 Windows 操作系统,但我没有找到适用于MacOS的任何选项。
还有其他方法可以实现处理这个问题的方法吗?
非常感谢您与我分享有关此的信息。