小编Eri*_*ken的帖子

如何将 Slack 的 OAuth2 与 Java 桌面应用程序结合使用

有没有办法使用 OAuth2 通过 Slack 验证 java 桌面应用程序?我正在尝试遵循Slack 的指南

我陷入困境,因为它说您在应用程序的重定向 uri 内获取访问令牌。但由于我正在制作的应用程序不存在于网络浏览器中,我是否可以做到这一点?

我的 java 应用程序可以启动一个可以与其通信以用作重定向 uri 的本地主机站点吗?如果是这样,怎么办?

java oauth-2.0 slack-api slack

5
推荐指数
1
解决办法
1340
查看次数

Slack 传入 Webhook 作为我的用户发送

我在 Slack 工作区中创建了一个传入 Webhook。我使用第三方工具将 JSON 对象发布到挂钩 url。我想向@user_1发送通知

我的问题是,通知发送到我和该用户 @user_1 之间的私人通道,而不是直接发送到 @user_1,比如通过 Slackbot 或只有该用户的通道。

如何确保通知是从 Slackbot 或 @user_1 发送的,而不是我自己发送的?

我的设置方式是通过传入 Webhook 创建一个新应用程序。对于通道,我选择 @user_1,并使用第三方提供的 url 发送 slack 通知。

webhooks slack-api slack

5
推荐指数
1
解决办法
2999
查看次数

Slack (Linux) 中是否可以将单词的一部分加粗?

是否可以在 Slack Chat 中将单词的一部分加粗。示例:堆栈溢出

我使用的是 Ubuntu 18.04 和 Linux 版本的 slack。使用消息生成器和 unicode 值 \u000b 似乎不起作用(见下图)。

在此输入图像描述

slack-api slack

5
推荐指数
2
解决办法
1474
查看次数

如何通过 slackclient 将图像作为 slack bot 发送到 Slack?

我正在构建一个简单的机器人,定期生成图表作为图像,并通过 python slackclient包发布到 slack。

我已经成功使用以下代码发送了一条机器人消息:

def post_message_to_channel(self, channel_id, message=DEFAULT_TEST_MESSAGE):
    sc = SlackClient(TOKEN)
    sc.api_call(
        "chat.postMessage",
        channel=channel_id,
        username='mybot',
        text='test text message'
    )
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试对文件上传执行相同操作时,图像已正确发送,但它显示我的名字,而不是指定的机器人名称:

def post_image_to_channel(self, channel_name, filepath, tile='Test Upload'):
    sc = SlackClient(TOKEN)
    with open(filepath, 'rb') as file_content:
        sc.api_call(
                "files.upload",
                channels=channel_id,
                file=file_content,
                title=tile,
                username='mybot',               
            )
Run Code Online (Sandbox Code Playgroud)

查看files.upload 的 slack API 文档,似乎username不可用。

如何使用机器人名称发送files.upload图像?

python slack-api slack

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

如何通过 Slack-App 从 C# 发布消息,作为用户而不是 App,在特定频道中带有附件

我一辈子都不能向另一个频道发布消息,而不是我通过网络连接的频道。我不能像我自己(在我的 slackID 下)那样做,就像应用程序一样。

问题是我必须为我的公司做这件事,所以我们可以将 slack 集成到我们自己的软件中。我只是不明白 JSON 的“有效负载”必须是什么样子(实际上我正在按照 Slack 网站上的说明进行操作,但它根本不起作用 - 它总是忽略诸如“令牌”之类的东西,“用户”、“频道”等)。

我也不明白如何使用像“ https://slack.com/api/chat.postMessage ”这样的 url-methods - 他们去哪里了?正如您在我的代码中可能看到的,我只有 webhookurl,如果我不使用它,我就无法发布任何内容。此外,我不明白如何使用诸如令牌、特定用户 ID、特定频道之类的参数...... - 如果我尝试将它们放入有效负载中,它们似乎会被忽略。

好吧,抱怨够了!现在我将向您展示我到目前为止所得到的。这是网上有人发的!但我改变并添加了一些东西:

public static void Main(string[] args)
        {
            Task.WaitAll(IntegrateWithSlackAsync());
        }

        private static async Task IntegrateWithSlackAsync()
        {
            var webhookUrl = new Uri("https://hooks.slack.com/services/TmyHook");  
            var slackClient = new SlackClient(webhookUrl);
            while (true)
            {
                Console.Write("Type a message: ");
                var message = Console.ReadLine();
                Payload testMessage = new Payload(message);
                var response = await slackClient.SendMessageAsync(testMessage);
                var isValid = response.IsSuccessStatusCode ? "valid" : "invalid";
                Console.WriteLine($"Received {isValid} response.");
                Console.WriteLine(response); …
Run Code Online (Sandbox Code Playgroud)

c# slack-api slack

5
推荐指数
2
解决办法
8916
查看次数

松弛通道之间的自动转发

有没有办法根据消息内容从一个 slack 频道自动转发到另一个?

我希望在一个频道中包含某个字符串的消息自动转发到另一个频道。

slack

5
推荐指数
0
解决办法
2198
查看次数

更新机器人发布的消息时出现“cant_update_message”错误

我正在尝试更新我的机器人发布的消息。但是,我在尝试调用 chat.update 时收到“cant_update_message”错误。这就是我的通话的样子:

oauth_token = os.environ.get("OAUTH_TOKEN")
sc=SlackClient(oauth_token)
sc.api_call("chat.update", channel=channel_id, text=text, ts=ts)
Run Code Online (Sandbox Code Playgroud)

我还尝试了 Bot OAuth 令牌而不是 OAuth 令牌,以及 as_user 的所有组合(True、False、机器人的用户 ID...),但没有成功。

另外,请注意通道和时间戳已经过测试并且是正确的;当我发布消息并且我是通过斜杠命令调用它的人时,我可以使用 OAuth 令牌更新消息。

我是 Slack API 开发的新手。你能让我知道我需要做什么才能让它工作吗?

另外,通过 chat.update 发布消息时是否可以自定义其他设置(例如username和)?icon_url这是一个重要的功能,因为我的机器人有时会使用不同的显示名称和图标进行发布。

slack-api

5
推荐指数
1
解决办法
2351
查看次数

消息通知产生“此内容无法显示”

我正在通过网络挂钩将消息发送到Slack。使用单个“文本” JSON元素的消息通知会通过适用于OS X和iOS的Slack应用生成正确的通知文本。消息文本在通道中也是正确的。但是,当使用新的“阻止”方法时,通知文本变为“无法显示此内容”。该消息确实正确显示在频道中。只是通知不起作用。

根据https://api.slack.com/messaging/composed/layouts,第一块中的文本用于通知:

当您在消息有效负载中使用块时,文本字段将成为通知中显示的后备消息。

不使用块样式,这可以工作:

curl -s -k -X POST https://hooks.slack.com/services/${webhook} -H 'Content-type: application/json' --data @- << EOF
{
  "text": "${message}"
}
EOF
Run Code Online (Sandbox Code Playgroud)

如果您使用https://api.slack.com/tools/block-kit-builder上的块构建器应用程序通过清除任何现有代码然后添加Section块来生成等效的简单块样式,则将具有以下内容:

[
    {
        "type": "section",
        "text": {
            "type": "plain_text",
            "text": "This is a plain text section block.",
            "emoji": true
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

现在,在页面底部,输入您的频道,然后点击“发送到Slack”。结果是文本正确到达频道,但是弹出的通知包含文本“此内容无法显示”。

起初,我认为自己的块样式代码不正确,但是,由块工具包构建器应用程序生成的代码也不起作用,这使我相信Slack本身存在问题/错误。

还是我忽略了什么?

谢谢

json slack-api

5
推荐指数
1
解决办法
804
查看次数

API Gateway 上的 API 密钥与斜杠命令一起使用

我正在创建一个新的 Slack 应用程序,它基本上接受斜杠命令。它已经可以工作了,但我想使用 API 密钥来保护我的 API。已经配置了 API 密钥 + 使用计划,但不确定如何在 slack 端使用它。

我基本上需要发送一个x-api-key标头,但这似乎从 Slack 方面不可能?

拥有一个仅依赖于 slack 验证令牌的开放 API 似乎非常危险,具体取决于您的命令......

有没有办法做到这一点,或者就是这样?仅使用令牌和团队 ID 进行验证。

slack-api aws-lambda aws-api-gateway slack

5
推荐指数
1
解决办法
1377
查看次数

当我在 slack 中设置主题时,为什么会收到 {"ok":false,"error":"channel_not_found"} ?

这是我设置主题频道的代码, {"ok":false,"error":"channel_not_found"} 当频道存在时我会收到并且我尝试使用channelId而不是使用#channelName。但没有区别。并且权限设置正确。

function setTopic1() {
var topic = 'testing'
  var url = 'https://xxxx.slack.com/api/conversations.setTopic'
  var payload = {
    'channel': '#temp-w',
    'token': token,
    'topic': topic,
  };

  var options = {
    'method': 'post',
    'payload': payload,
  };

  if (topic.length > 250) {
    Logger.log("Topic is too long, API request might fail")
  }
  var response = UrlFetchApp.fetch(url,options);
  Logger.log(response)
}`
Run Code Online (Sandbox Code Playgroud)

javascript slack-api

5
推荐指数
2
解决办法
7825
查看次数