쪽지 수신.발신 시 텔레그램 함수를 사용하여 알람을 받으려고 합니다. 채택완료
재미니다
1년 전
조회 1,920
안녕하세요.
현재 루트/lib/common.lib.php에 텔레그램 함수를 저장해 놓고 회원가입 및 게시물 작성 시 함수를 호출하여 알람을 받고있는 상태인데요.
이 함수를 이용하여 관리자가 받은 쪽지, 관리자가 보낸 쪽지 알람을 텔레그램 메시지로 받으려고 합니다.
어느 파일을 살펴봐야 쪽지 수신, 발신 관련 코드가 있는지, 어떤식으로 호출하면 수신, 발신이 나뉘는지 알려주시면 감사하겠습니다.
아래는 common.lib.php에 저장한 텔레그램 함수이며, 회원가입 시 알람 받는 코드입니다.
</p>
<p>function fnTelegramNotice($msg){</p>
<p> $token = '토큰';</p>
<p> $chat_id = '챗 아이디';</p>
<p> </p>
<p> $url = '<a href="https://api.telegram.org/bot'.$token.'/sendMessage';" target="_blank" rel="noopener noreferrer">https://api.telegram.org/bot'.$token.'/sendMessage';</a></p>
<p> $data = array('chat_id' => $chat_id, 'text' => $msg);</p>
<p> </p>
<p> $ch = curl_init();</p>
<p> </p>
<p> curl_setopt($ch, CURLOPT_URL, $url."?".http_build_query($data));</p>
<p> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);</p>
<p> curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);</p>
<p> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);</p>
<p> curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");</p>
<p> </p>
<p> $result = curl_exec($ch);</p>
<p> $result_array = json_decode($result, true);</p>
<p> </p>
<p> curl_close($ch);</p>
<p> </p>
<p>}</p>
<p>
회원가입 시 알람 받는 코드
</p>
<p>$mb = get_member($mb_id);</p>
<p> </p>
<p> $notemsg = "";</p>
<p> switch($mb['mb_level']){</p>
<p> case 2:</p>
<p> $notemsg = '[일반 회원가입] '.$mb['mb_nick'].'('.$mb['mb_id'].')';</p>
<p> break;</p>
<p> case 3:</p>
<p> $notemsg = '[업체 회원가입] <'.$mb['mb_3'].'> '.$mb['mb_nick'].'('.$mb['mb_id'].')';</p>
<p> break;</p>
<p> }</p>
<p> fnTelegramNotice($notemsg);</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
1년 전
https://github.com/gnuboard/gnuboard5/blob/master/bbs/memo_form_update.php#L69
https://github.com/gnuboard/gnuboard5/blob/master/bbs/memo_form_update.php#L76
https://github.com/gnuboard/gnuboard5/blob/master/bbs/memo_form_update.php#L83
링크가 도움이 될지 모르겠습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 4개
�
재미니다
1년 전
�
배르만
1년 전
다음 부분을 유지하고
[code]
$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
fnTelegramNotice($notemsg);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
[/code]
다음 부분은 주석처리 하면 될것 같습니다.
[code]
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);
}
[/code]
[code]
$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
fnTelegramNotice($notemsg);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
[/code]
다음 부분은 주석처리 하면 될것 같습니다.
[code]
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);
}
[/code]
�
재미니다
1년 전
알려주신 방식은 수신.발신을 나누는 것이 안 되네요ㅠㅠ
수신:관리자 / 발신:회원 이렇게 나누어 알람을 받아야 해서요..
어떻게 처리를 해야 될까요?
수신:관리자 / 발신:회원 이렇게 나누어 알람을 받아야 해서요..
어떻게 처리를 해야 될까요?
�
재미니다
1년 전
조건문을 추가해서 해결 했네요.
감사합니다!
[code]
if ($is_admin) {
$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
fnTelegramNotice($notemsg);
}
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
[/code]
감사합니다!
[code]
if ($is_admin) {
$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
fnTelegramNotice($notemsg);
}
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
알려주신 링크를 살펴보고 제 나름 추측하여 아래처럼 삽입은 했습니다.
[code]
// 실시간 쪽지 알림 기능
$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);
}
[/code]
회원이 운영자에게 보내는 쪽지는 알람이 잘 옵니다만 운영자가 회원에게 쪽지보낼 시에는 알람이 오질 않네요..
아래처럼 수정하게 되면 운영자가 보낼 때는 정상적으로 알람이 잘 옵니다만 회원이 보낼 때는 알람이 받은 쪽지, 보낸 쪽지 두개가 동시에 옵니다.
[code]
$notemsg = "[쪽지 보냄] {$str_nick_list}({$str_id_list})";
fnTelegramNotice($notemsg);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
[/code]
어떻게 처리해야 될지 도움을 청합니다.(__)