[카카오워크] API 메일주소로 메세지 보내기
메일주소를 통해서 메세지를 보내는 방식 입니다. 이것 때문에 테스트 하게 된것인데요. 앞으로는 이미지 나쁜 텔레그램 보다는 이것을 사용해야 겠습니다.
메세지 보내는 방식도 REST API 사용으로 쉽게 보낼 수 있습니다.
# ----------------------------------------------------------------------------
# [카카오워크] API 메일주소로 메세지 보내기 / 메세지보내기 - 이메일
# ----------------------------------------------------------------------------
# curl -X POST https://api.kakaowork.com/v1/messages.send_by_email -H "Authorization: Bearer {YOUR_APP_KEY}" -H "Content-Type: application/json" -d '{ "email": "{메시지를 수신할 사용자의 인증된 email 주소}", "text": "{전송할 채팅 메시지}" }'
#
# ./api_test.php send_by_email
if( $MODE == 'send_by_email' )
{
$KWORK_API = '01c281';
$USER_AGENT = 'pabburi.co.kr kakaowork bot';
$aSendInfo = array();
$aSendInfo['email'] = 'pa@gmail.com';
$aSendInfo['text'] = 'msg send test';
$json_data = json_encode($aSendInfo);
$aHeader = array();
$aHeader[] = 'Authorization: Bearer ' . $KWORK_API;
$aHeader[] = 'Content-Type: application/json; charset=utf-8';
$aHeader[] = "Accept-Encoding: gzip, deflate";
$aHeader[] = "Connection: keep-alive";
$aHeader[] = "User-Agent: " . $USER_AGENT;
// print_r($aHeader);
#
$url_kwork = 'https://api.kakaowork.com/v1/messages.send_by_email';
# 리턴되는 헤더에 꼭 필요한 정보가 있어 리스폰 헤더를 알아야 한다.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_kwork);
curl_setopt($ch, CURLOPT_HTTPHEADER , $aHeader);
curl_setopt($ch, CURL_HTTP_VERSION_1_1, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSLVERSION, 5);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_POST, true);
$response = curl_exec($ch);
$aRtnHeader = curl_getinfo($ch);
curl_close($ch);
# 리스폰에서 헤더와 바디 별도 변수에 담아 놓기 - 압축되었으면 풀어 준다.
$rtn_header = substr($response, 0, $aRtnHeader['header_size']);
$rtn_body = substr($response, $aRtnHeader['header_size']);
$http_body = $rtn_body;
if( stristr($rtn_header, 'Content-Encoding: gzip') ) {
$http_body = gzdecode($rtn_body);
}
$aJson = json_decode($http_body, true);
// echo $rtn_header;
print_r($aJson);
echo '-----------------------------------------------' . "\n";
$aRtnInfo = array();
$aTemp = explode("\n", $rtn_header);
foreach ( $aTemp as $key => $val )
{
$aTmp = explode(': ', $val);
$hname = $aTmp[0];
$hval = $aTmp[1];
$aRtnInfo[$hname] = trim($hval);
}
echo 'ratelimit-limit: ' . $aRtnInfo['ratelimit-limit'] . "\n";
echo 'ratelimit-remaining: ' . $aRtnInfo['ratelimit-remaining'] . "\n";
echo 'ratelimit-reset: ' . $aRtnInfo['ratelimit-reset'] . "\n";
}
