我正在尝试使用 django-slack api,我遵循了此处描述的路径http://django-slack.readthedocs.io/ 但我无法发送示例机器人消息。
这是我的代码片段:
消息.slack
{% extends django_slack %}
{% block text %}
Hello World!
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
在views.py中
def index(request):
slack_message('message.slack')
return HttpResponse('Sent a message')
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
目前我有一个 Python 脚本向 slack 发送消息。我想添加额外的链接,但不知道如何添加。这是我当前的代码。
def post_slack():
"""Post slack message."""
try:
token = 'xoxp-67503713541-67496795984-216701772021-c23bdfbe9635f1f63a4c802697147dfc'
slack = Slacker(token)
obj = slack.chat.post_message(
channel='#dataworksapp',
as_user= 'false',
username = 'DataWorksBot',
attachments=[
{
"color": "033E96",
"title": "Pressure Transducer Weekly Information",
"title_link": "https://console.cloud.google.com/storage/browser/firebase_results/?project=dataworks-356fa",
"author_name": "Master Table",
"author_link": "https://bigquery.cloud.google.com/table/dataworks-356fa:FirebaseArchive.PT_MasterTable?tab=preview",
"text": "https://bigquery.cloud.google.com/table/dataworks-356fa:FirebaseArchive.PT_MasterTable?tab=preview",
"fields": [
{
"title": "Amount Used:",
"value": "countPTserial1",
"short": 'true'
},{
"title": "Distinct Device ID's:",
"value": "countPTid1",
"short": 'true'
},{
"title": "Total Connection Time (hr):",
"value": "sumPTct2",
"short": 'true'
}
]
Run Code Online (Sandbox Code Playgroud)
我无法找到任何其他类似于“author_link”的字段类别,我可以将其设置为等于链接。我可以设置"text"等于链接,但如果我这样做,我更愿意将链接作为单个单词而不是在消息中发送整个丑陋的链接。
另外,我无法将链接设置为等于变量,然后设置"text" …
在 slack - 我可以使用以下文本语法直接从我的两者中标记用户:
hello Francois <@francois>
Run Code Online (Sandbox Code Playgroud)
我想对一个组做同样的事情(不幸的是我的应用程序只知道组名而不是组 ID)。是否有这样做的语法 - 以下语法不起作用:
hello group <@group>
Run Code Online (Sandbox Code Playgroud) 有没有办法通过 Slack API 获取用户加入团队的日期?最好的办法是让所有用户及其加入日期都在同一个 JSON 中。通过https://api.slack.com/methods搜索,但找不到这样的方法。
我有一个包含现有用户和用户 ID(即不是 Slack 用户 ID)的 Web 应用程序。我想允许我的用户安装我的新 Slack 应用程序。
我如何知道哪些用户使用 OAuth 连接到 Slack 并安装我的应用程序?我知道您可以请求电子邮件,但如果 Slack 电子邮件与最初注册我的申请时使用的电子邮件地址不同怎么办?
了解哪些 Slack 用户与我的现有用户相关联至关重要。有没有办法通过 OAuth 流程发送现有用户的 user_id,以便我知道如何将 Slack 用户链接到我的其中一个用户?
潜在的解决方案?
state变量来识别我网站上的用户我一直在试图弄清楚如何让slack-ruby-clientgem 在我的 Ruby 脚本中工作,但显然我在 json 方面遇到了问题。
这是我得到的:
[user:ubuntu:~/Documents]$ irb 4:43PM/07.08
2.5.1 :001 > require 'slack-ruby-client'
Traceback (most recent call last):
11: from /home/user/.rvm/rubies/ruby-2.5.1/bin/irb:11:in `<main>'
10: from (irb):1
9: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
8: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
7: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
6: from /home/user/.rvm/gems/ruby-2.5.1/gems/slack-ruby-client-0.11.1/lib/slack-ruby-client.rb:13:in `<top (required)>'
5: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:90:in `require'
4: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:90:in `each'
3: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:91:in `block in require'
2: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/specification.rb:1434:in `activate'
1: from /home/user/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/specification.rb:2315:in `check_version_conflict'
Gem::LoadError (can't activate json-1.8.6, already activated json-2.1.0)
2.5.1 :002 > …Run Code Online (Sandbox Code Playgroud) 我刚刚在 Slack 中设置了一个 webhook,以便从我的 Laravel 应用程序发送日志记录。
当日志行执行时,会弹出这个错误:
RuntimeException
Curl error (code 3): <url> malformed
Run Code Online (Sandbox Code Playgroud)
来源:
vendor\monolog\monolog\src\Monolog\Handler\Curl\Util.php
{
while ($retries--) {
if (curl_exec($ch) === false) {
$curlErrno = curl_errno($ch);
if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) {
$curlError = curl_error($ch);
if ($closeAfterDone) {
curl_close($ch);
}
throw new \RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError));
}
continue;
}
if ($closeAfterDone) {
curl_close($ch);
}
break;
}
}
Run Code Online (Sandbox Code Playgroud)
日志行:
Log::channel('slack')->info('hi');
Run Code Online (Sandbox Code Playgroud)
配置是这样的:
'slack' => [
'driver' => 'slack',
'url' => env('https://hooks.slack.com/services/TC3S00PFC/BC411TH4M/YXAu...'),
'username' => 'app', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Slack webhook 通知频道有关当天的 csv 文件以及发布指向它的链接以进行附加。https://api.slack.com/docs/message-attachments不使用任何实际附件示例,仅包含链接。我想知道是否有可能发送我的代码正在生成的 csv 文件并通过它的路径附加它os.path.basename(csvfile)
我正在尝试使用此处演示的格式:https : //gist.github.com/devStepsize/b1b795309a217d24566dcc0ad136f784但我不确定这是否允许实际文件附件。所以,我很感激在这件事上的任何帮助/方向。甚至可以通过 Slack webhook 发送文件附件,如果可以,应该如何去做?
过去几天我一直在为此苦苦挣扎,但是......当我从 slack 应用程序中使用我的命令调用 Slack Slash 命令时,slack 不会响应任何有关该命令的数据,例如 trigger_id。我想通过调用 dialog.open 来响应命令,但这需要命令中的 trigger_id。
目前,我正在记录来自服务器的响应;打印出以下内容(我在 Heroku 中托管它,因此四位数字与我无法轻松从日志中完全删除的时间戳相关,只需忽略它们。我还从一开始就省略了很大一部分响应由于 StackOverflow 的字符限制):
1699 length: 0,
1700 pipes: null,
1701 pipesCount: 0,
1703 flowing: true,
1704 ended: false,
1706 endEmitted: false,
1707 reading: true,
1709 sync: false,
1710 needReadable: true,
1711 emittedReadable: false,
1713 readableListening: false,
1714 resumeScheduled: false,
1716 paused: false,
1718 emitClose: false,
1719 destroyed: false,
1721 defaultEncoding: 'utf8',
1722 awaitDrain: 0,
1724 readingMore: false,
1725 decoder: null,
1727 encoding: null },
1728 readable: true, …Run Code Online (Sandbox Code Playgroud) 我需要我的 slack bot 来支持用户输入日期和时间,我知道有 DatePicker 可以输入某个日期。但是我也需要时间,我想用一个文本字段来只输入字符串,但是用户每次都要处理格式的东西很烦人。有一个更好的方法吗?还是可以自己制作日期时间选择器?
编辑:用户可以输入任何特定时间,任何小时或分钟。