Laravel Slack Notification, начало потока - PullRequest
0 голосов
/ 06 июня 2018

Прямо сейчас у меня есть классы уведомлений, которые отправляют слабые сообщения всякий раз, когда создается новая заметка об инциденте или инциденте.Внутри приложения Incident и IncidentNote связаны через идентификатор в моих таблицах базы данных.

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

Как мне попытаться сделать это?

1 Ответ

0 голосов
/ 06 июня 2018

Шаги:
- Каждый раз, когда вы создаете новый инцидент в slack, вы получите идентификатор потока.
- Сохраните этот идентификатор потока в вашей БД, соответствующей вашей записи инцидента.
- В следующий раз, когда вы захотите опубликовать любой комментарий или заметку по какой-либо конкретной теме в slack, опубликуйте сообщение, содержащее идентификатор потока из БД.

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

Пример: чтобы опубликовать заметку / комментарий к определенной теме в slack:

public function postReplyThread($msg,$ts){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"https://slack.com/api/chat.postMessage");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,
                "token=".$this->access_token."&channel=".$this->channel."&text=".$msg."&ts=".$ts."&thread_ts=".$ts);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $server_output = curl_exec ($ch);
    curl_close ($ch);
    return $server_output;
}

Где thread_ts=".$ts - это ветка, где вы хотите разместить свой комментарий.

...