앞서 예를 든 상황처럼 게시글이 등록했을 때 teams로 알림을 받고 싶은 내용 중에 '제목, 글쓴이, 내용, 날짜'등이 있을 수 있습니다.
이런 내용들을 파라미터로 url에 실어서 호출해주면 그 내용도 teams로 받을 수 있습니다.
http://localhost/send_message.php?param0=0번¶m1=1번¶m2=2번¶m3=3번
위와 같이 (pram0 ~ param3, 4개의 파라미터)url을 호출하여 실제로 teams에 메시지가 어떻게 전송되는지 확인해보겠습니다.
1. 코드 작성
php 서버에 'send_message.php'라는 파일을 생성하여 아래처럼 코드를 작성해줍니다.
param0 부터 param10까지 11개로 요청받은 파라미터를 처리하는 예제입니다.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
if(extension_loaded("curl")){
echo "cUrl extension is loaded";
}else{
echo "cUrl extension is not available";
}
function WebhookSendMessage($text){
$url = '생성한 WEBHOOK 주소';
$ch = curl_init();
$test =[
"@type" => "MessageCard",
"@context" => "http://schema.org/extensions",
"summary" => $text["param5"]." ".$text["param4"]." ".$text["param3"]." ".$text["param2"],
"themeColor" => "0076D7",
"title" => "메시지 제목",
"sections" => [
[
"activityTitle" => "",
"activitySubtitle" => "",
"activityImage" => "",
"facts" => [
[
"name" => "Parameter 0",
"value" => $text["param0"]
],
[
"name" => "Parameter 1",
"value" => $text["param1"]
],
[
"name" => "Parameter 2",
"value" => $text["param2"]
],
[
"name" => "Parameter 3",
"value" => $text["param3"]
]
],
"text" => "테스트 메시지 입니다."
]
]
];
$jsonDataEncoded = json_encode($test, true);
$header = array();
$header[] = 'Content-type: application/json';
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
echo "<br><br> 전송결과 <Br>";
$result = curl_exec($ch);
curl_close($ch);
echo "결과값 ";
var_dump($result);
}
$messageArray = array(
"param0" => trim($_GET['param0']),
"param1" => trim($_GET['param1']),
"param2" => trim($_GET['param2']),
"param3" => trim($_GET['param3']),
"param4" => trim($_GET['param4']),
"param5" => trim($_GET['param5']),
"param6" => trim($_GET['param6']),
"param7" => trim($_GET['param7']),
"param8" => trim($_GET['param8']),
"param9" => trim($_GET['param9']),
"param10" => trim($_GET['param10']),
);
echo "입력받은 파라미터 출력 <Br>";
print_r($messageArray);
WebhookSendMessage($messageArray);
?>
2. Get 방식으로 url에 파라미터를 전달하여 메시지가 전달되는지 확인해봅니다.
http://localhost/send_message.php?param0=0번¶m1=1번¶m2=2번¶m3=3번
|
3. URL 호출 결과확인
여기서 warning 경고는 무시하셔도 됩니다.
위에 코드에서처럼 모든 에러를 출력하게 작성하였기 때문에 선언이 안 된 param4~ param10까지의 파라미터에 값이 없어서 발생한 경고입니다.
결과 화면을 살펴보시면 아래 부분에 http/2 200 부분에 정상적으로 호출된 것을 확인할 수 있습니다.
4. Teams 메시지 확인
그럼 실제로 teams에 메시지가 잘 도착했을까요
팀즈에도 잘 도착한 것을 확인할 수 있습니다.
php curl, json 처리 등의 방식을 활용하여 teams webhook을 활용하여 notification을 간단하게 구현해봤습니다.
'Programming > PHP' 카테고리의 다른 글
MSSQL 로그인 테이블 암호화 처리 (0) | 2022.04.11 |
---|---|
PHP & Teams Webhook 과 연동하기 (1/2) (0) | 2022.03.02 |
MSSQL과 연동, 쿼리 날려보기 (PHP with MSSQL) (0) | 2022.02.24 |
[Codeigniter 기초] (2) MVC 컨트롤러와 뷰의 관계 (0) | 2022.02.23 |
[Codeigniter 기초] (1) Bootstrap template 적용을 위한 준비단계 (0) | 2022.02.23 |