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

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

본문 바로가기

사이트 내 전체검색

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

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

페이지 정보


본문

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 459건 4 페이지
  • RSS
기술자료 목록
399
그누보드   6777  2019-12-22 20:08 ~ 2020-02-20 19:28  
398
그누보드   4515  2019-12-20 11:04 ~ 2019-12-20 11:05  
397
그누보드   5625  2019-12-10 21:41 ~ 2019-12-10 22:07  
396
그누보드   6043  2019-11-08 13:38 ~ 2019-11-15 11:33  
열람
그누보드   7355  2019-10-16 02:05 ~ 2019-10-16 02:52  
394
그누보드   5215  2019-09-30 20:00  
393
그누보드   4943  2019-09-23 08:32  
392
그누보드   5943  2019-08-13 23:52 ~ 2019-08-14 00:02  
391
그누보드   6541  2019-07-18 08:01 ~ 2019-07-18 08:44  
390
그누보드   12803  2019-04-25 09:02 ~ 2022-09-23 05:26  
389
그누보드   6440  2019-04-22 23:56  
388
그누보드   5840  2019-03-22 14:25  
387
그누보드   7259  2019-02-16 01:51 ~ 2019-02-17 14:00  
386
그누보드   7050  2019-02-08 16:47 ~ 2019-02-08 16:54  
385
그누보드   7722  2019-01-31 18:45 ~ 2020-10-06 19:03  
384
그누보드   5720  2019-01-16 18:41 ~ 2019-01-17 19:01  
383
그누보드   9527  2019-01-11 01:42 ~ 2019-01-11 01:43  
382
그누보드   7570  2019-01-01 23:07  
381
그누보드   6804  2018-12-20 06:30 ~ 2019-01-25 09:25  
380
그누보드   7994  2018-12-18 15:16  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.