카카오챗봇기능을 통해 간단하게 챗에 응답하는 챗봇을 제작할 수 있습니다.
기본적인 구성방법은 아래 링크를 참조하시면됩니다.
http://kjcoder.tistory.com/505
위 링크는 서버가 C#기준으로 되어있기 때문에 PHP로 구성하는 방법을 알려드립니다.
운영 환경 |
PHP 5.6 / NGINX 12.2 |
디렉토리 |
[웹루트]/index.php |
NGINX와 PHP-FPM 구성은 생략합니다.
https://launchdog.wordpress.com/2016/04/22/centos7-nginx-php7-mariadb-%EC%84%A4%EC%B9%98-1/
위 링크에 설명을 잘해 놓았으니 참고하도록합니다.
위 링크는 PHP7기준입니다. 참고로 저는 호환성을 위해 PHP5.6을 선택하였습니다.
kakao 챗봇 서비스를 위한 nginx 서버 설정
콘피그파일에 아래와 같이 구성합니다. (/etc/nginx/conf.d/default.conf 수정)
location ~ /kakao {
try_files $uri $uri/ /index.php?/$request_uri;
}
카카오에서 요청되는 주소는 http://[도메인]/kakao/keyboard 형식으로 호출되도록하기위해 위와 같이 구성합니다.
실제 실행파일은 웹루트/index.php 입니다.
route를 rewrite시키는 효과를 냅니다.
참고로 PHP 스크립트 설정은 아래와 같이 하였습니다.(php-fpm/nginx 설정시 미리 하기도 합니다.)
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php/([a-zA-Z0-9_]+)/([0-9]+)$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
그 다음 index.php 파일 내용입니다.
단촐합니다.
<?php
header('Content-Type: application/json');
$uri = $_SERVER["REQUEST_URI"];
if($uri=='/kakao/keyboard') {
//if(!is_kakao_server()) return; #호출 서버가 카카오서버가 아니면 실행안되도록 함.
$data = array();
$data['type'] = 'text';
echo json_encode($data);
return;
}
if($uri=='/kakao/message') {
//if(!is_kakao_server()) return; #호출 서버가 카카오서버가 아니면 실행안되도록 함.
$postdata = file_get_contents("php://input");
$message = json_decode($postdata);
//$message->content
//$message->user_key
//$message->type
// 위 변수로 접근 가능하다. 적절하게 처리.
### 적절한 처리..
$data = array('message'=>array('text'=>'잘 처리되었어요.~등등등')); //메시지 응답을 한다.
echo json_encode($data);
return;
}
'앱개발' 카테고리의 다른 글
PouchDB에 관해서... (0) | 2019.02.22 |
---|---|
예쁜 패턴 만들어주는 사이트 (0) | 2018.09.28 |
GPG 1~8권 목차 (0) | 2018.07.17 |
구글 플레이스토어 명의 도용으로 인한 앱 승인 거부 (0) | 2017.11.29 |
앱이 설치되지 않았습니다. 디버그하기. (0) | 2017.11.19 |