Подать строку с помощью слабого ружья - PullRequest
1 голос
/ 28 июня 2019

Итак, в основном, у меня есть набор данных (доменное имя, оценка серьезности), который находится в строковом формате как пост, и я пытаюсь получить его для поста в вяло, и он продолжает выбрасывать ошибки, и я не знаю, Зачем. Я ценю помощь.

Я попытался немного изменить часть JSON, чтобы увидеть, так ли это, а также изменить то, что отправляется в функцию в целом, и ничего не помогает.

def slackHook (сообщение): webhook_url = # пропущено

slack_content = {"channel": "@brian", "user": "Awesom-O", "attachment": [{
 "type": "section",
 "text": {
  "text": "Random message before domains",
  "type": "mrkdwn",
     },
 "fields": [
  {
   "type": "mrkdwn",
   "text": "Domain             Severity Score"
  },
  {
   "type": "plain_text",
   "text": post
  }
 ]
}]}
string_payload = json.dumps(slack_content)
r = requests.post(webhook_url, data=string_payload)
if r.status_code != 200:
    raise ValueError('Request to slack.com returned an error %s, the response is:\n%s' % (r.status_code, r.text))


domains = db_query()
domains = str(domains)
slackHook(domains)

Happy Path: я просто хотел бы взять мою строку и опубликовать ее в моем слабом канале, используя поля, которые я дал для контекста.

Текущая ошибка:

raise ValueError('Request to slack.com returned an error %s, the response is:\n%s' % (r.status_code, r.text))

ValueError: Request to slack.com returned an error 400, the response is:
no_text

1 Ответ

0 голосов
/ 28 июня 2019

Ваша основная проблема заключается в том, что вы смешиваете синтаксис для вложений и блоков, которые являются различными понятиями.вложения устарели и больше не должны использоваться.

Просто замените "attachment" на "blocks" примерно так:

slack_content = {"channel": "@brian", "user": "Awesom-O", "blocks": [{
...