我创建了一个机器人,它从工作区中的用户收集信息。它将这些信息存储在本地服务器上的 csv 文件中。我如何下载该文件?我从 Stack Overflow 上得到了这段代码,尝试联系作者,但没有得到任何回复。
import requests
url = 'https://slack-files.com/T0JU09BGC-F0UD6SJ21-a762ad74d3'
token = 'xoxp-TOKEN'
requests.get(url, headers={'Authorization': 'Bearer %s' % token})
Run Code Online (Sandbox Code Playgroud)
如何获取文件的 URL 和令牌?令牌是什么?它是机器人的 OAuth 令牌吗?
假设我希望下载stats.csv由 slackbot 创建的服务器命名的文件,但我没有它的 URL,我该如何下载它?
我正在使用 python3.6 并尝试向自己发送消息以开始在 slack 中进行交互。
我已经安装pip install slackclient并正在使用 slackclient v2.2.1
频道 ID 是从我帐户的 slack 链接中提取的https://XXXXX.slack.com/messages/XXXXXXXXX
我想在我的 Slack 帐户中看到嗨消息。有什么建议。
client = slack.WebClient("BOT_USER_TOKEN", timeout=30)
client.chat_postMessage(
channel='CHANNEL_ID',
text='Hi!')```
Run Code Online (Sandbox Code Playgroud) 我有一个松弛实例,我是唯一的用户(到目前为止)。我正在尝试使用机器人帐户发布一条简单的“hello world”消息,因此该消息不会显示为来自我的帐户。
$url = "https://slack.com/api/chat.postMessage?token=xoxb-XXXXXX&channel=general&text=hello%20world";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$head = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
当我使用xoxp-XXXXoAuth 令牌发布时,它效果很好,只不过它来自我的帐户。当我使用xoxb-XXXX令牌发帖时,我会收到"error": "not_in_channel"回复。我收到了chat:write:user用户范围错误 - 尽管我已向我的应用程序授予了所有 50 个权限。
如何设置我的 Slack 应用程序以允许从应用程序上的机器人帐户而不是从我的帐户进行此写入?
我使用此查询规则进行警报:
- alert: HostOutOfMemory
expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90
for: 5m
labels:
severity: warning
annotations:
summary: "{{ $labels.name }} out of memory "
description: "Host memory is {{ $value }}%"
Run Code Online (Sandbox Code Playgroud)
但是该值是float(PromQL的默认值),我想格式化它(如下图,我可以将其更改为仅显示90%),我该怎么办?
谢谢您阅读此篇。
我正在使用模态来收集数据。我通过以下代码打开了一个视图:
view = {
"type": "modal",
"title": {
"type": "plain_text",
"text": "My App",
"emoji": True
},
"submit": {
"type": "plain_text",
"text": "Submit",
"emoji": True
},
"close": {
"type": "plain_text",
"text": "Cancel",
"emoji": True
},
"blocks": [
{
"type": "input",
"element": {
"type": "plain_text_input",
"action_id": "plain_text_input-action"
},
"label": {
"type": "plain_text",
"text": "Please leave feedback here",
"emoji": True
}
}
]
}
slack_client.views_open(trigger_id=body['trigger_id'],view=view)
Run Code Online (Sandbox Code Playgroud)
我想让输入文本可选,也就是说,即使用户将输入字段留空,他/她仍然可以提交模式。这能实现吗?
我的 Slack 机器人无法向带有空格或类似“频道名称”的频道发送消息,但对于单字频道效果很好。
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://slack.com/api/chat.postMessage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{ \"channel\": \"channel-withspace\",\"text\": \"hello\"}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer <here>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Run Code Online (Sandbox Code Playgroud)
这是错误:
{"ok":false,"error":"not_in_channel","warning":"missing_charset","response_metadata":{"warnings":["missing_charset"]}}
Run Code Online (Sandbox Code Playgroud) 我确信这个问题已经被问过很多次了,但我无法找到相关的答案。有没有办法通过逻辑应用程序或其他方式将Azure监视器警报发送到slack。我找到了这个模板 - https://github.com/Azure/azure-quickstart-templates/tree/master/demos/alert-to-slack-with-logic-app并将其集成到我的azure系统中,但它不是在职的。
已经尝试了一些解决办法 - https://github.com/Azure/azure-quickstart-templates/issues/3319但都是徒劳的
不支持使用 slack 传入 Webhook 的操作组直接 Webhook,因为 azure 使用其自己的架构发送警报。
任何意见都将受到高度赞赏...
我创建了一个机器人,它接收来自 Slack 用户的斜线命令。我正在尝试访问内容类型为 www-form-urlencoded 的 slack 消息的有效负载。
我尝试过解析为查询:
[Function("SetSubject")]
public async Task<HttpResponseData> SetSubjectPost(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestData req, FunctionContext executionContext)
{
var parsedFormBody = HttpUtility.ParseQueryString(req.Url.Query);
var text = parsedFormBody["text"];
var userId = parsedFormBody["user_id"];
}
Run Code Online (Sandbox Code Playgroud)
我尝试从以下位置获取它FunctionContext:
[Function("SetSubject")]
public async Task<HttpResponseData> SetSubjectPost(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestData req, FunctionContext executionContext)
{
var text = executionContext.BindingContext.BindingData["text"]?.ToString();
var userId = executionContext.BindingContext.BindingData["user_id"]?.ToString();
}
Run Code Online (Sandbox Code Playgroud)
还尝试将正文解析为MultipartFormData:
[Function("SetSubject")]
public async Task<HttpResponseData> SetSubjectPost(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestData …Run Code Online (Sandbox Code Playgroud) 我需要创建一个可以持续很长一段时间的松弛令牌,但我能找到的只是测试令牌,我不知道他们甚至会因为我试图在他们的文档中搜索但是我能找到的所有内容都是机器人令牌和测试令牌,你的帮助非常感谢,我使用facebook的API,他们有一种方法来生成一个永不过期的令牌是松弛可用吗?
我不确定我是否正确地理解了如何使用webhooks,但是:我想以不同的渠道或不同的用户(而不是一次)发送消息,而无需参与该对话。
我的问题:我只能为特定用户创建webhooks,所以我最终为每个用户/频道拥有唯一的URL?如果我使用我所使用的库中的“ channel”参数或什至“ setReceipent”方法之类的东西,它不会有任何效果,只有为webhook创建的频道/用户会收到消息。
我需要使用API访问权限还是可以使用Webhooks满足我的需求?
slack ×10
slack-api ×7
azure ×2
python ×2
.net ×1
api ×1
azure-alerts ×1
permissions ×1
php ×1
prometheus ×1
promql ×1
python-3.x ×1
webhooks ×1