[G5] 텔레그램 API 연동/그누보드 쪽지 등록 시 PUSH 보내기 > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

그누보드 [G5] 텔레그램 API 연동/그누보드 쪽지 등록 시 PUSH 보내기

페이지 정보

댓글 0건 조회 152회 작성일 2019-10-16 02:05 ~ 2019-10-16 02:52

본문

https://sir.kr/g5_tip/11788 의 내용을 조금 수정하였습니다.


게시글 / 댓글 / 쪽지를 작성하면 텔레그램로 PUSH 하는 방법입니다.


1. 파일 구조
GNU5
   ├ adm
   │  ├ telegram
   │  │     ├ _common.php
   │  │     ├ telegram.lib.php
   │  │     └ telegram_setting.php
   │  └ admin.menu.990.php
   ├ bbs
   │   ├ memo_form_update.php // 메모 push
   │   ├ write_comment_update.php // 댓글 push
   │   └ write_update.php // 게시글 push
   └ extend
          └ telegram.extend.php


2. adm / admin.menu.990.php
<?php
$menu["menu990"] = array (
    array('990000', '추가기능', G5_ADMIN_URL.'/telegram/telegram_setting.php', 'ETC'),
    array('990660', '텔레그램', G5_ADMIN_URL.'/telegram/telegram_setting.php', 'telegram_setting'),
);
?>


3. adm / telegram / _common.php
<?php
define('G5_IS_ADMIN', true);
include_once ('../../common.php');
include_once(G5_ADMIN_PATH.'/admin.lib.php');
?>


4. adm / telegram / telegram.lib.php
<?php
if (!defined('_GNUBOARD_')) exit;

function curl_tele_sent($text){
    if($text){
        $g5['telegram_table'] = G5_TABLE_PREFIX.'telegram_setting'; // 텔레그램 테이블
        $row = sql_fetch(" select * from {$g5['telegram_table']} where idx = 1 ");
        
        $api_code = $row['bot_api_code'];
        $chat_id  = $row['bot_chat_id'];
        
        if($api_code && $chat_id){
            $ch = curl_init();
            $curl_url = "https://api.telegram.org/bot{$api_code}/sendMessage?chat_id={$chat_id}&text={$text}";
            @curl_setopt($ch, CURLOPT_URL, $curl_url);
            @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     
            @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);      
            @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   
            $exec = curl_exec($ch);
            echo " ";
        }
        echo " ";
    }
}
?>


5. adm / telegram / telegram_setting.php
<?php
include_once('./_common.php');
$sub_menu = '990660';
//$g5['telegram_table'] = G5_TABLE_PREFIX.'telegram_setting'; // 텔레그램 테이블

//내용(컨텐츠)정보 테이블이 있는지 검사한다.
if(!sql_query(" DESCRIBE {$g5['telegram_table']} ", false)) {
    sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['telegram_table']}` (
        `idx` int(11) NOT NULL,
        `bot_api_code` varchar(255) NOT NULL,
        `bot_chat_id` varchar(255) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ", true);
    //) ENGINE=InnoDB DEFAULT CHARSET=utf8 ", true);
    //) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC ", true);
    
    sql_query(" ALTER TABLE `g5_telegram_setting` ADD UNIQUE KEY `idx` (`idx`); ", true);
    
    // 내용관리 생성
    sql_query(" insert into `{$g5['telegram_table']}` (idx, bot_api_code, bot_chat_id) values ('1', '', '') " );
}

include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');
$g5['title'] = '텔레그램 플러그인 기본설정';
include_once(G5_ADMIN_PATH.'/admin.head.php');

$row = sql_fetch(" select bot_api_code, bot_chat_id from {$g5['telegram_table']} where idx = 1 ");

if($_GET['mode'] == 'update'){

        $bot_api_code = trim($_POST['bot_api_code']);
        $bot_chat_id = trim($_POST['bot_chat_id']);
    
        if(!$bot_chat_id && !$bot_chat_id){
            echo "<script>alert('누락된 정보가 있습니다.'); location.href = '{$PHP_SELF}?mode=select'; </script> ";
            exit();
        }//
    
        sql_query(" update {$g5['telegram_table']} set bot_api_code = '$bot_api_code', bot_chat_id = '$bot_chat_id' ");
        echo "<script>alert('정상적으로 DB에 반영됐습니다.'); location.href = '{$PHP_SELF}?mode=select'; </script> ";
        exit();         
    
}elseif($_GET['mode'] == 'reset'){

    sql_query(" truncate table {$g5['telegram_table']} ");
    sql_query(" insert into {$g5['telegram_table']} VALUES (1, '','') ");
    echo "<script>alert('정상적으로 초기화가 완료됐습니다.'); location.href = '{$PHP_SELF}?mode=select'; </script> ";            
    
} // end
?>
<form action='<?=$PHP_SELF;?>?mode=update' method=post>
    <div class="local_desc02 local_desc" style="background:#f3f4f3;">
        <p>이 서비스는 'SIR.CO.KR' 에서 활동하는 '유진201907' 이 개발한 텔레그램 플러그인의 기본설정을 하는 데 목적이 있습니다. </p>
    </div>
    <div class="tbl_frm01 tbl_wrap">
            <table>
            <caption>홈페이지 기본환경 설정</caption>
            <colgroup>
                <col class="grid_4">
                <col>
                <col class="grid_4">
                <col>
            </colgroup>
            <tbody>
                
            <tr>
                <th scope="row"><label for="cf_title">수신 BOT API CODE<strong class="sound_only">필수</strong></label></th>
                <td colspan="3"><input type="text" name="bot_api_code" value="<?php if($row['bot_api_code']){ echo $row['bot_api_code']; } ?>" placeholder='435070531:AFFCwB4JfvU6hai1u_Osal3dYcERx4F67wQ' id="cf_title" required="" class="required frm_input" size="80"></td>
            </tr>
            <tr>
                <th scope="row"><label for="cf_admin">수신 BOT CHAT ID<strong class="sound_only">필수</strong></label></th>
                <td colspan="3"><input type="text" name="bot_chat_id" value="<?php if($row['bot_chat_id']){ echo $row['bot_chat_id']; } ?>" placeholder="354402611" id="cf_title" required="" class="required frm_input" size="80"></td>
            </tr>
            <tr>
                <th scope='row'>관리하기</th>
                <td colspan=3>
                    <input type="submit" value="DB에 반영 요청하기" class="btn_submit btn" accesskey="s">
                    <input type="button" onclick="location.href = '<?=$PHP_SELF;?>?mode=reset'; " value="DB 리셋" style="background:#3f51b5;" class="btn_submit btn" accesskey="s">
                
                </td>
            </tr>
            </tbody>
            </table>
        </div>
    <div class="local_desc02 local_desc" style="background:#f3f4f3;">
        <p><strong>◆ 텔레그램 봇 생성방법:</strong> <a href='https://hatpub.tistory.com/48' target=_blank>https://hatpub.tistory.com/48</a></p>
        <p><strong>◆ Bot 생성 후 Chat_id 구하기:</strong> <a href='https://blog.acidpop.kr/216' target=_blank>https://blog.acidpop.kr/216</a></p>
        <?php if($row['bot_api_code']){ ?>
        <p><strong>◆ Bot 생성 후 Chat_id 구하기:</strong> <a href="https://api.telegram.org/bot<?php echo $row['bot_api_code']; ?>/getUpdates" target="_blank">https://api.telegram.org/bot<?php echo $row['bot_api_code']; ?>/getUpdates</a>
        <?php } ?>
    </div>
</form>
<?php
include_once(G5_ADMIN_PATH.'/admin.tail.php');
?>


6. extend / telegram.extend.php
<?php
if (!defined('_GNUBOARD_')) exit;

$g5['telegram_table'] = G5_TABLE_PREFIX . "telegram_setting";    // 
?>


7. bbs / memo_form_update.php

    $str_nick_list = implode(',', $member_list['nick']);

아래에 내용을 추가합니다.

    if ($recv_mb_id=="관리자ID") { // 텔레그램으로 PUSH 받고자 하는 회원ID를 입력합니다.
        include_once(G5_ADMIN_PATH.'/telegram/telegram.lib.php');
        $telegram_msg = $_POST['me_memo'];
        curl_tele_sent("[Memo] ".$member['mb_id']." (".$member['mb_nick'].") ".$telegram_msg);
    }


8. bbs / write_comment_update.php



9. bbs / write_update.php
페이지 끝의 goto_url 위의 적당한 곳에 아래 코드를 추가합니다.

if ($w=="" || $w=="w") {
    if ($bo_table=="게시판ID") { // 특정 게시판의 신규 글일때만 작동
        include_once(G5_ADMIN_PATH.'/telegram/telegram.lib.php');
        $telegram_msg  = get_text(strip_tags($wr_content))." ";
        $telegram_msg .= G5_BBS_URL."/board.php?bo_table=".$bo_table;
        //$telegram_msg  = G5_BBS_URL."/board.php?bo_table=".$bo_table."&amp;wr_id=".$wr_id;
        curl_tele_sent("[Board] ".$member['mb_id']." (".$member['mb_nick'].") ".$telegram_msg);
    }
}
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 2,357건 1 페이지

기술자료 목록
제목
2357 그누보드   91  2019-11-08 13:38 ~ 2019-11-14 05:13  
2356 PHP   107  2019-10-28 10:05  
2355 HTML   110  2019-10-25 18:48 ~ 2019-10-25 18:49  
열람중 그누보드   153  2019-10-16 02:05 ~ 2019-10-16 02:52  
2353 JavaScript   213  2019-10-02 22:05 ~ 2019-10-04 16:13  
2352 PHP   220  2019-10-02 16:52 ~ 2019-10-02 16:52  
2351 Linux   171  2019-10-02 16:42 ~ 2019-10-02 16:49  
2350 그누보드   177  2019-09-30 20:00  
2349 Linux   196  2019-09-30 18:06  
2348 HTML   189  2019-09-27 14:07 ~ 2019-09-27 14:08  
2347 PHP   220  2019-09-27 10:14 ~ 2019-09-27 10:52  
2346 영카트   163  2019-09-27 09:25  
2345 PHP   272  2019-09-24 00:41 ~ 2019-09-24 00:42  
2344 Linux   186  2019-09-23 23:03  
2343 그누보드   181  2019-09-23 08:32  
2342 Secure   147  2019-09-19 22:17  
2341 제로보드   171  2019-09-17 14:13 ~ 2019-09-17 14:21  
2340 HTML   192  2019-09-16 12:20  
2339 MySQL   233  2019-09-09 20:18  
2338 PHP   239  2019-08-26 11:14  

게시물 검색
계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
466
어제
2,707
최대
3,306
전체
5,186,343

회사명: 해피정닷컴   대표: 정창용   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 032-679-3528
부천센터: 14526 경기도 부천시 옥산로168번길 34-1, 3층   서울센터: 08393 서울시 구로구 디지털로32가길 16, 1206-280호
개인정보보호책임자: 정창용   통신판매업신고: 2014-서울구로-0074 [사업자등록확인]   건강기능식품영업신고 제2018-0080452호
Copyright 2001~2019 해피정닷컴. All Rights Reserved.