쪽지 수신.발신 시 텔레그램 함수를 사용하여 알람을 받으려고 합니다.

쪽지 수신.발신 시 텔레그램 함수를 사용하여 알람을 받으려고 합니다.

QA

쪽지 수신.발신 시 텔레그램 함수를 사용하여 알람을 받으려고 합니다.

본문

안녕하세요.

현재 루트/lib/common.lib.php에 텔레그램 함수를 저장해 놓고 회원가입 및 게시물 작성 시 함수를 호출하여 알람을 받고있는 상태인데요.

이 함수를 이용하여 관리자가 받은 쪽지, 관리자가 보낸 쪽지 알람을 텔레그램 메시지로 받으려고 합니다.

 

어느 파일을 살펴봐야 쪽지 수신, 발신 관련 코드가 있는지, 어떤식으로 호출하면 수신, 발신이 나뉘는지 알려주시면 감사하겠습니다.

 

아래는 common.lib.php에 저장한 텔레그램 함수이며, 회원가입 시 알람 받는 코드입니다.


function fnTelegramNotice($msg){
    $token = '토큰';
    $chat_id = '챗 아이디';
 
    $url = 'https://api.telegram.org/bot'.$token.'/sendMessage';
    $data = array('chat_id' => $chat_id, 'text' => $msg);
 
    $ch = curl_init();
 
    curl_setopt($ch, CURLOPT_URL, $url."?".http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
 
    $result = curl_exec($ch);
    $result_array = json_decode($result, true);
   
    curl_close($ch);
 
}

 

회원가입 시 알람 받는 코드


$mb = get_member($mb_id);
   
    $notemsg = "";
    switch($mb['mb_level']){
        case 2:
            $notemsg = '[일반 회원가입] '.$mb['mb_nick'].'('.$mb['mb_id'].')';
        break;
        case 3:
            $notemsg = '[업체 회원가입] <'.$mb['mb_3'].'> '.$mb['mb_nick'].'('.$mb['mb_id'].')';
        break;
    }
    fnTelegramNotice($notemsg);

이 질문에 댓글 쓰기 :

답변 2

배르만님 답변 감사합니다.
알려주신 링크를 살펴보고 제 나름 추측하여 아래처럼 삽입은 했습니다.


    // 실시간 쪽지 알림 기능
    $sql = " update {$g5['member_table']} set mb_memo_call = '{$member['mb_id']}', mb_memo_cnt = '".get_memo_not_read($recv_mb_id)."' where mb_id = '$recv_mb_id' ";
    sql_query($sql);

    if (!$is_admin) {
        insert_point($member['mb_id'], (int)$config['cf_memo_send_point'] * (-1), $recv_mb_nick.'('.$recv_mb_id.')님께 쪽지 발송', '@memo', $recv_mb_id, $me_id);
        // 현재 로그인된 사용자의 아이디 얻기
        $mb_id = $member['mb_id']; // $member는 현재 로그인된 사용자 정보를 담고 있는 변수일 것입니다.

        // 사용자 아이디를 기반으로 멤버 정보 가져오기
        $mb = get_member($mb_id);
        $notemsg = "";
        $notemsg = "[쪽지 받음] {$mb['mb_nick']}({$mb['mb_id']})";
        fnTelegramNotice($notemsg);
    }
}

if ($member_list) {

    $redirect_url = G5_HTTP_BBS_URL."/memo.php?kind=send";
    $str_id_list = implode(',', $member_list['id']);
    $str_nick_list = implode(',', $member_list['nick']);

    run_event('memo_form_update_after', $member_list, $str_nick_list, $redirect_url, $_POST['me_memo']);
    alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false); 
    $notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
    fnTelegramNotice($notemsg);
} else {

    $redirect_url = G5_HTTP_BBS_URL."/memo_form.php";
    
    run_event('memo_form_update_failed', $member_list, $redirect_url, $_POST['me_memo']);

    alert("회원아이디 오류 같습니다.", $redirect_url, false);
}

회원이 운영자에게 보내는 쪽지는 알람이 잘 옵니다만 운영자가 회원에게 쪽지보낼 시에는 알람이 오질 않네요..

아래처럼 수정하게 되면 운영자가 보낼 때는 정상적으로 알람이 잘 옵니다만 회원이 보낼 때는 알람이 받은 쪽지, 보낸 쪽지 두개가 동시에 옵니다.

$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
    fnTelegramNotice($notemsg);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);


어떻게 처리해야 될지 도움을 청합니다.(__)

다음 부분을 유지하고


$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
    fnTelegramNotice($notemsg);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);


다음 부분은 주석처리 하면 될것 같습니다.

    if (!$is_admin) {
        insert_point($member['mb_id'], (int)$config['cf_memo_send_point'] * (-1), $recv_mb_nick.'('.$recv_mb_id.')님께 쪽지 발송', '@memo', $recv_mb_id, $me_id);
        // 현재 로그인된 사용자의 아이디 얻기
        //$mb_id = $member['mb_id']; // $member는 현재 로그인된 사용자 정보를 담고 있는 변수일 것입니다.

        // 사용자 아이디를 기반으로 멤버 정보 가져오기
        //$mb = get_member($mb_id);
        //$notemsg = "";
        //$notemsg = "[쪽지 받음] {$mb['mb_nick']}({$mb['mb_id']})";
        //fnTelegramNotice($notemsg);
    }

조건문을 추가해서 해결 했네요.
감사합니다!


if ($is_admin) {
        $notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
        fnTelegramNotice($notemsg);
    }
    alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false); 

bbs/memo_form_update.php

파일에 쪽지를 주고받는 파일입니다.

insert 되는 쪽에 해당 코드를 추가하시면 될듯합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 59,611
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT