我已经自动完成了詹姆斯的部署,而不是slash commands
。
我需要给permission for slash commands
或限制斜杠命令只能访问特定用户(即)通道中的某些成员可以使用/deploy_dev
部署开发环境,但是他们不能部署到分段和生产环境。
答案 0 :(得分:8)
为了限制对自定义斜杠命令的访问,只需检查哪个用户在脚本中调用了斜杠命令,然后执行命令或拒绝它(并使用适当的消息回复)。
Slack始终为请求提供用户ID和用户名,以便您的脚本中提供信息。请参阅以下示例,了解来自Slack的命令请求:(来自official documentation)
/**
{
"created_on": "26 may 2017",
"todos": [
"go get github.com/go-sql-driver/mysql"
],
"aim": "Reading fname column into []string(slice of strings)"
}
*/
/*
mysql> select * from users;
+----+-----------+----------+----------+-------------------------------+--------------+
| id | fname | lname | uname | email | contact |
+----+-----------+----------+----------+-------------------------------+--------------+
| 1 | Rishikesh | Agrawani | hygull | rishikesh0014051992@gmail.com | 917353787704 |
| 2 | Sandeep | E | sandeep | sandeepeswar8@gmail.com | 919739040038 |
| 3 | Darshan | Sidar | darshan | sidardarshan@gmail.com | 917996917565 |
| 4 | Surendra | Prajapat | surendra | surendrakgadwal@gmail.com | 918385894407 |
| 5 | Mukesh | Jakhar | mukesh | mjakhar.kjahhar@gmail.com | 919772254140 |
+----+-----------+----------+----------+-------------------------------+--------------+
5 rows in set (0.00 sec)
mysql>
*/
package main
import "fmt"
import "log"
import (
_"github.com/go-sql-driver/mysql"
"database/sql"
)
func main() {
// db, err := sql.Open("mysql", "<username>:<password>@tcp(127.0.0.1:<port>)/<dbname>?charset=utf8" )
db, err := sql.Open("mysql", "hygull:admin@67@tcp(127.0.0.1:3306)/practice_db?charset=utf8")
if err != nil {
log.Fatal(err)
}
rows, err := db.Query("select fname from users")
if err != nil {
log.Fatal(err)
}
firstnames:=[]string{}
for rows.Next() {
var fname string
rows.Scan(&fname)
firstnames = append(firstnames, fname)
}
fmt.Println(firstnames)
db.Close()
}
/*
[Rishikesh Sandeep Darshan Surendra Mukesh]
*/
要管理谁有权访问,我建议使用私有渠道,以便用户必须成为特定私有渠道的成员才能执行特定的斜杠命令。您可以致电groups.info
以获取脚本中私人频道所有成员的用户ID。
请注意,斜杠命令始终可供所有用户访问,并且Slack中没有全局配置选项,这将允许您授予对特定斜杠命令的访问权限。因此,您必须在脚本中执行此操作,如上所述。