목록

2015.12.11 05:05
조회 2,029
0

사실 연동방법은 쉽지만, 텔레그램의 chat_id를 가져오는 방법이 쉽지않아서 바로 적용은 어렵습니다만..

 

소규모 커뮤니티 혹은 쇼핑몰 운영시 새글알림이나 댓글 확인을 할때 유용하긴 하더라구요

 

그런부분도 sms로 할필요는 없으니깐요.

 

텔레그램의 botfather 에서 /newbot 으로 자신이 생성할 텔레그램봇을 만들어줍니다.

 

여기서 bot_api를 얻을수 있습니다.

 

그러면 알림센터에서 알림이 발생했을때 알림을 텔레그램으로 보내주면 되는데요

 

ncenterlite.controller.php 에서

 

_insertnotify함수에서 보면

 

else if($logged_info)
{
// 익명 노티가 아닐 때 로그인 세션의 회원정보 넣기
$args->target_member_srl = $logged_info->member_srl;
$args->target_nick_name = $logged_info->nick_name;
$args->target_user_id = $logged_info->user_id;
$args->target_email_address = $logged_info->email_address;

//텔레그램 변경
  $oAppModuleModel = &getModel('ncenterlite');
  $oAppModuleModel->getPushMessage($args);

}

 

저 익명노티가 아닐때.. 이부분을 찾아서 아래에 텔레그램 코드를 넣어줍니다.

 

 

그리고 아래 함수를 ncenterlite.model.php에 추가해줍니다.

function getPushMessage($v){

switch($v->type)
{
case 'D':
$type = "글";
break;
case 'C':
$type = "댓글";
break;
// 메시지. 쪽지
case 'E':
$type = "쪽지";
break;
}
 
switch($v->target_type)
{
case 'C':
$str = sprintf('%s님이 회원님의 %s에 "%s" 댓글을 남겼습니다.', $v->target_nick_name, $type, $v->target_summary);
break;
case 'M':
$str = sprintf('%s님이 "%s" %s에서 회원님을 언급하였습니다.', $v->target_nick_name,  $v->target_summary, $type);
break;
// 메시지. 쪽지
case 'E':
$str = sprintf('%s님이 회원님에게 쪽지를 보냈습니다', $v->target_nick_name);
case 'P':
$str = sprintf('%s님이 새글 %S 를 작성했습니다.', $v->target_nick_name,$v->target_summary);
break;
}

$msg = $v->target_summary;
$url2 = $v->target_url;
$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($v->member_srl);
$email = $member_info->email_address;

$str=$str.urlencode("\r\n".$url2);

$chat_id = '11111';
$bot_id = "botfather가 알려준 api";
$url = 'https://api.telegram.org/bot' . $bot_id . '/sendMessage?text='.$str.'&chat_id='.$chat_id;

$result = file_get_contents($url);




}

 

그러면 이제 준비완료인데요.

 

가장중요한 chat_id를 확인해야겠죠. chat_id는 얻는 방법이 좀 이상해요

일단 텔레그램에서 친구추가로 자신의 bot을 추가한다음 /start 를 해줍니다.  이것을 안해주면 안됩니다.

만약 이것을 안하면 그전에 했던 사람의 id가 나옵니다. ㅡㅡ;;

 

그런다음

 

https://api.telegram.org/bot/bot_api/getUpdates?offset=0

 

*bot_api 는 위에서 얻은 api를 입력하시면 됩니다.

를 브라우저에 입력해주거나 , 해당부분을  curl등으로 값을 리턴받으면 알수 있습니다.

 

원래 처음 계획은 텔레그램으로 개별 사용자들이 푸쉬메시지를 받게 하는 게 목적이었는데, 이 chat_id를 바로 알수 있는 방법이 없어서 힘들더군요. 지금은 운영자들 끼리만 사용하고 있습니다.

 

다음번엔 없어진 알림센터의 새글알림 코드를 되살려서 운영자만 새글알림을 텔레그램으로 받는 방법을..올려보도록 하겠습니다.

 

 

이 내용은 제 블로그에도 같이 올라갑니다... 오늘도 이렇게 10점 벌어갑니다 ㅎㅎㅎ

 

약사이다 Lv. 4

댓글 34