티스토리 뷰
반응형
그누보드 영카트에서 텔레그램으로 전송하는 경우로 검색하면 대강 아래와 같은 코드들이 나오는데
sns 공유하기와
게시물작성 혹은 주문완료에서 알림을 넣고 싶을때 참조하면 좋습니다.
/bbs/sns_send.php 위치에서
case 'telegram' :
header("Location:https://telegram.me/share/url?url=".$short_url."&text=".$title);
break;
$telegram_sns_send = G5_BBS_URL.'/sns_send.php?longurl='.urlencode('https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$telegram_sns_send .= '&title='.urlencode(utf8_strcut(get_text($view['subject']),140));
$telegram_sns_send .= '&title='.$sns_msg; ?>
$url=urlencode( 'https://주소/bbs/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
curl_tele_sent('[System] '.$wr_name.'님의 문의 글이 등록됐습니다.'.$url)
$menu['menu100'][] = array('100800', '텔레그램 플러그인 설정', G5_ADMIN_URL.'/telegram_setting.php', 'cf_service');
CREATE TABLE IF NOT EXISTS `telegram_setting` (
`idx` int(255) NOT NULL,
`bot_api_code` varchar(255) NOT NULL,
`bot_chat_id` varchar(255) NOT NULL,
KEY `bot_api_code` (`bot_api_code`),
KEY `bot_chat_id` (`bot_chat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- 테이블의 덤프 데이터 `telegram_setting`
--
INSERT INTO `telegram_setting` (`idx`, `bot_api_code`, `bot_chat_id`) VALUES
(1, '', '');
<?php
if (!defined('_GNUBOARD_')) exit;
function curl_tele_sent($text){
if(!$text){
exit("No Data!!");
} // end
$row = sql_fetch(" select bot_api_code, bot_chat_id from telegram_setting where idx = 1 ");
if(!$row['bot_api_code'] && !$row['bot_chat_id']){
exit();
}
$ch = curl_init();
$api_code = $row['bot_api_code']; // 900~
$chat_id = $row['bot_chat_id']; // 822~~
$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, 10);
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$exec = curl_exec($ch);
} // curl_tele_sent end
?>
텔레그램주문은
orderform.update.php에서 sms보내는 부분에서 처리하면 됩니다.
PHP 버전 5.2.0 이하에서는 json_encode 함수가 지원되지 않아 발생한 문제입니다.
function json_encode2($data) {
switch (gettype($data)) {
case 'boolean':
return $data?'true':'false';
case 'integer':
case 'double':
return $data;
case 'string':
return '"'.strtr($data, array('\\'=>'\\\\','"'=>'\\"')).'"';
case 'array':
$rel = false; // relative array?
$key = array_keys($data);
foreach ($key as $v) {
if (!is_int($v)) {
$rel = true;
break;
}
}
$arr = array();
foreach ($data as $k=>$v) {
$arr[] = ($rel?'"'.strtr($k, array('\\'=>'\\\\','"'=>'\\"')).'":':'').json_encode2($v);
}
return $rel?'{'.join(',', $arr).'}':'['.join(',', $arr).']';
default:
return '""';
}
}
그리고 json_encode2 를 json_encode 로 바꿔서 사용. 머 이런식으로도 버전에 따른 json 문제도있네요
어짜피 코드는 거기서 거기인데 문제는
작업할 사이트의 환경이 어떨지 모르는것이죠-_-
텔레그램봇 을 php curl로 바로 꽂아서 사용하는 방법이 있는데
js 에서
<!DOCTYPE html>
<html lang="en">
<body>
<form>
<input type="text" id="fname" name="fname" placeholder="fullname">
<input type="text" id="country" name="country" placeholder="country">
<button id="myBtn" type="submit">Send</button>
</form>
<script>
document.getElementById("myBtn").addEventListener("click", function(e) {
e.preventDefault();
var fname = document.querySelector('input[name="fname"]').value;
var country = document.querySelector('input[name="country"]').value;
var message = "<html><br>| Fullname: ${fname} <br> | Country: ${country} <br></html>";
var token = "1750418914:AAGvauViE8H7CT7heYWqjDS00000000";
var chat_id = -1001400000000;
var url = 'https://api.telegram.org/bot${token}/sendMessage?chat_id=${chat_id}text=${message}&parse_mode=html';
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.send();
alert("Message sent");
});
</script>
</body>
</html>
이런식으로 클릭 이벤트로 처리할 수도있겠지만..
주문이다 보니 내부적으로 처리되야할것들이 많아서 주문서 처리 후에 메세지 전송이 이루어져야하는데
주문후 메세지를 보내면 민감한 정보들이 오가는 경우가 생길테니
추천하지는않네요
반응형
'웹 > 그누보드' 카테고리의 다른 글
그누보드에서 봇 차단하는 방법 (1) | 2024.04.27 |
---|---|
그누보드6 윈도우에 설치 및 재설정 mysql 설치 오류 해결 (0) | 2024.04.22 |
그누보드 여분필드 10개 이상 사용 방법. (0) | 2022.03.02 |
그누보드 링크 클릭 포인트 차감 (0) | 2022.02.25 |
그누보드 중복로그인 방지 (0) | 2022.02.25 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 회원가입
- Magisk
- 텔레그램
- 셀레니움
- xe
- 멀티계정
- Cloudflare
- Apache
- SSL
- 윈도우
- 텔레그램봇
- php
- .htaccess
- 제로보드
- 그누보드
- php8
- 루팅
- Fullcalendar
- python
- 워드프레스
- 유튜브
- 오토셋
- 파이썬
- 에러
- 아파치
- 클라우드플레어
- 그누보드5
- lsposed
- 파이선
- 아미나
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함