이용안내

미니톡 이용과 관련된 도움말을 제공합니다.
그누보드 연동하기

미니톡 채팅위젯을 그누보드와 연동하여 사용하는 방법은 크게 2가지 방법이 있습니다.

일반적으로 아웃로그인 아래에 미니톡 채팅위젯을 사용하고자하는 경우에는 마켓플레이스에 올라와 있는 그누보드 미니톡 아웃로그인 스킨 (https://www.minitalk.io/ko/download/market/view/1014)을 사용하시면 됩니다.


해당 스킨을 다운로드 받아, minitalk.php 파일을 에디터 프로그램을 이용하여 자신의 환경에 맞게 수정하여 줍니다.


<?php
/**
 * 이 파일은 미니톡 그누보드 연동 플러그인의 일부입니다. (https://www.minitalk.io)
 *
 * 미니톡 채팅위젯을 사용하기 위한 필수함수들을 정의한다.
 *
 * @author Arzz (arzz@arzz.com)
 * @license MIT License
 * @version 1.0.0
 * @modified 2021. 2. 26.
 */

/**
 * 미니톡 설정시작
 * 아래의 주석을 보고 적절한 값으로 수정하여 주시기 바랍니다.
 */

// 미니톡 클라이언트 URL (마지막 / 는 생략합니다.)
$_MINITALK_URL = 'https://www.yourdomain.com/minitalk';

// 미니톡 클라이언트 설치시 입력한 암호화키
$_MINITALK_SECRET_KEY = 'YOUR_SECRET_KEY';

// 미니톡 채널명 (미니톡 클라이언트 관리자에서 생성한 채널)
$_MINITALK_CHANNEL = 'example';

// 미니톡 템플릿
$_MINITALK_TEMPLET = 'default';

// 미니톡 가로크기
$_MINITALK_WIDTH = '100%';

// 미니톡 세로크기
$_MINITALK_HEIGHT = '500';

// 회원정보 설정
if ($member['mb_id']) {
  // 회원 로그인시 표시될 닉네임을 변경하려면, 그누보드 $member 값을 활용하여 변경합니다. (기본값 그누보드 회원닉네임만 사용)
  $_MINITALK_NICKNAME = $member['mb_nick'];
 
  // 회원 프로필 이미지
  $_MINITALK_PHOTO = is_file(G5_DATA_PATH.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif') == true ? G5_DATA_URL.'/member_image/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif' : null;
 
  // 닉이미지 (회원아이콘 및 닉네임)
  $_MINITALK_NICKCON = is_file(G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif') == true ? G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.$member['mb_id'].'.gif' : null;
  $_MINITALK_NICKCON = $_MINITALK_NICKCON != null ? $_MINITALK_NICKCON.',{NICKNAME}' : null;
 
  // 회원레벨 (9 레벨은 미니톡 관리자로 동작한다.)
  // 그누보드 레벨은 0~10 까지 이므로 그누보드 레벨에서 1 을 뺀다. 회원레벨이 1 인 유저는 1로 지정한다.
  $_MINITALK_LEVEL = max(1,$member['mb_level'] - 1);
 
  // 회원부가정보 (쪽지보내기 등 연동을 위한 사용자정보)
  $_MINITALK_EXTRAS = array('mb_id'=>$member['mb_id']);
} else {
  $_MINITALK_NICKNAME = null;
  $_MINITALK_PHOTO = null;
  $_MINITALK_NICKCON = null;
  $_MINITALK_LEVEL = 0;
  $_MINITALK_EXTRAS = array();
}

/**
 * 미니톡 채팅위젯 적용을 위한 기본 함수 정의
 */
if (defined('__IS_MINITALK_PLUGIN__') === false) {
  define('__IS_MINITALK_PLUGIN__',true);
  define('__MINITALK_URL__',$_MINITALK_URL);
  define('__MINITALK_SECRET_KEY__',$_MINITALK_SECRET_KEY);
 
  /**
   * 복호화가 가능한 방식(AES-256-CBC)으로 문자열을 암호화한다.
   *
   * @param string $value 암호화할 문자열
   * @return string $ciphertext
   */
  function MinitalkEncoder($value) {
    $key = md5(__MINITALK_SECRET_KEY__);
    $padSize = 16 - (strlen($value) % 16);
    $value = $value.str_repeat(chr($padSize),$padSize);
   
    $output = openssl_encrypt($value,'AES-256-CBC',$key,OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING,str_repeat(chr(0),16));
   
    return base64_encode($output);
  }
 
  /**
   * 클라이언트 아이피를 가져온다.
   * Proxy 서버를 통해 접속하였을 경우에도 가급적 실제 아이피를 가져온다.
   *
   * @return string $ip
   */
  function GetClientIp() {
    return isset($_SERVER['HTTP_X_FORWARDED_FOR']) == true ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
  }
 
  /**
   * 유저코드를 가져온다.
   *
   * @param string $nickname 닉네임(필수)
   * @param int $level 권한레벨 (1~9, 9 : 최고관리자 / 기본값 : 1)
   * @param string $nickcon 닉이미지 (옵션)
   * @param string $photo 프로필사진 (옵션)
   * @param any[] $extras 유저 추가정보 (옵션, key-value 배열만 가능)
   * @return string $userCode 유저코드
   */
  function MinitalkUserCode($nickname,$level=1,$nickcon=null,$photo=null,$extras=array()) {
    $user = array(
      'nickname'=>$nickname,
      'level'=>intval($level),
      'nickcon'=>$nickcon ? $nickcon : null,
      'photo'=>$photo ? $photo : null,
      'extras'=>count($extras) > 0 ? $extras : null,
      'ip'=>GetClientIp()
    );
   
    return MinitalkEncoder(json_encode($user,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
  }
}
?>
<script type="text/javascript" src="<?php echo __MINITALK_URL__; ?>/scripts/minitalk.js" charset="UTF-8"></script>
<script type="text/javascript">
new Minitalk({
  id:"MinitalkG5Outlogin",
  channel:"<?php echo $_MINITALK_CHANNEL; ?>",
  width:"<?php echo $_MINITALK_WIDTH; ?>",
  height:"<?php echo $_MINITALK_HEIGHT; ?>",
  templet:"<?php echo $_MINITALK_TEMPLET; ?>",
  usercode:"<?php echo MinitalkUserCode($_MINITALK_NICKNAME,$_MINITALK_LEVEL,$_MINITALK_NICKCON,$_MINITALK_PHOTO,$_MINITALK_EXTRAS); ?>",
  listeners:{
    init:function(minitalk) {
      // 쪽지보내기 메뉴추가
      minitalk.user.appendMenu({
        name:"memo",
        text:"쪽지보내기",
        iconClass:"mi mi-message",
        visible:function(minitalk,user,me) {
          if (user.extras === null || user.extras.mb_id === undefined || me.extras === null || me.extras.mb_id === undefiend) return false;
          return true;
        },
        handler:function(minitalk,user) {
          win_memo("<?php echo G5_URL; ?>/bbs/memo_form.php?me_recv_mb_id=" + user.extras.mb_id);
        }
      });

      // 자기소개 메뉴추가
      minitalk.user.appendMenu({
        name:"profile",
        text:"자기소개",
        iconClass:"mi mi-user",
        visible:function(minitalk,user,me) {
          if (user.extras === null || user.extras.mb_id === undefined || me.extras === null || me.extras.mb_id === undefiend) return false;
          return true;
        },
        handler:function(minitalk,user) {
          win_profile("<?php echo G5_URL; ?>/bbs/profile.php?mb_id=" + user.extras.mb_id);
        }
      });

      // 전체게시물 메뉴추가
      minitalk.user.appendMenu({
        name:"new",
        text:"전체게시물",
        iconClass:"mi mi-search",
        visible:function(minitalk,user) {
          if (user.extras === null || user.extras.mb_id === undefined) return false;
          return true;
        },
        handler:function(minitalk,user) {
          check_goto_new("<?php echo G5_URL; ?>/bbs/new.php?mb_id=" + user.extras.mb_id);
        }
      });

    }
  }
});
</script>


$_MINITALK_URL 부분에 미니톡 클라이언트가 설치된 전체 경로를 입력하여 주십시오.

$_MINITALK_SECRET_KEY 에는 미니톡 클라이언트를 설치할 때 입력한 암호화키를 입력하여 주십시오.

$_MINITALK_CHANNEL 에는 아웃로그인 아래쪽에 표시될 채팅위젯에서 접속할 채널 (미니톡 클라이언트 관리자에서 생성한 채널)명을 입력하여 주십시오.


기본적으로, 회원연동은 그누보드의 회원이미지(프로필 이미지), 회원아이콘이 연동됩니다.



아웃로그인 외에 다른 곳에서도 미니톡 채팅위젯을 사용하실려면, 위의 minitalk.php 파일을 원하는 곳에 따로 업로드 한 뒤, 적절하게 수정하신 뒤 미니톡 채팅위젯을 출력하고 싶은 위치에 아래와 같이 minitalk.php 파일을 인클루드하시면 됩니다.


<?php
include '/minitalk.php 파일이 위치한 절대경로/minitalk.php
?>
최종수정일 :