标签: slack

松弛传入webhook:请求头字段预检响应中的Access-Control-Allow-Headers不允许Content-type

我尝试在浏览器中通过fetch API发布松弛消息:

fetch('https://hooks.slack.com/services/xxx/xxx/xx', {
  method: 'post',
  headers: {
    'Accept': 'application/json, text/plain, */*',
    'Content-type': 'application/json'
  },
  body: JSON.stringify({text: 'Hi there'})
})
  .then(response => console.log)
  .catch(error => console.error);
};
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Fetch API cannot load:
https://hooks.slack.com/services/xxxxxxx/xxxxx. 
Request header field Content-type is not allowed by Access-Control-Allow-Headers in preflight response.
Run Code Online (Sandbox Code Playgroud)

该怎么办?

javascript content-type cors slack fetch-api

13
推荐指数
2
解决办法
3213
查看次数

一种从 URL 打开 Slack Search UI(在浏览器中)的方法

我试图看看是否有办法在浏览器中从 URL 打开新的 Slack Search UI。

例如,在 Microsoft Teams 中,您可以在新选项卡中打开以下链接https://teams.microsoft.com/_#/apps/a2da8768-95d5-419e-9441-3b539865b118/search?q=yourQueryHere,然后它会打开您的团队并打开搜索 UI,其中已经列出了 yourQueryHere 结果。

Slack 有类似的东西吗?到目前为止,我不相信这是可能的,因为 Slack 没有搜索页面的路线。

假设我们在这里:https : //company.slack.com/messages/channelId/。然后我们在搜索栏中输入一些内容并按搜索。URL 保持不变。

请注意,根据他们的文档,Slack 似乎 (?) 具有搜索深度链接 (slack://),但没有示例(我尝试过 slack://search/hello, slack://search)。

slack microsoft-teams

13
推荐指数
2
解决办法
1097
查看次数

使用松弛的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 bot无法将消息发布到私人频道

我关注Slack bot post消息文档

它完美的作品时后到公共频道,但得到的错误[error] => channel_not_found时后到私人频道,我甚至改变频道名到频道ID(例如:G1HCG4BQ9)

我已经授权使用chat:write:userchat:write:bot权限

bots private channel slack

12
推荐指数
4
解决办法
9058
查看次数

同时"添加到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
查看次数

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

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

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

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

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

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

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

google-chrome-extension slack-api slack

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