이 세팅은 우분투 18.04 환경에서 진행 하였습니다.

먼저 docker 와 docker-compose 가 먼저 설치 되어야 합니다.
https://hatpub.tistory.com/103?category=988317

아래 git 을 clone 하시고
# docker-compose build ## 오류 날경우 sudo 붙여 주세요. reboot 하면 sudo 없이도 됩니다.
# docker-compose up -d
위의 명령어를 입력하게 되면 바로 올라가게끔 해 놓았습니다.

https://github.com/hatpub/apm_to_docker-compose

 

hatpub/apm_to_docker-compose

apm setting to docker-compose. Contribute to hatpub/apm_to_docker-compose development by creating an account on GitHub.

github.com

 

아래는 설명 입니다.

해보시고 이해 안되시거나 안되시는 부분 있으면 답글 부탁 드립니다.
읽어 주셔서 감사합니다.


Curl error 60, SSL certificate issue: self signed certificate in certificate chain (말림 오류 60, SSL 인증서 문제 : 인증서 체인의 자체 서명 인증서)


저는 윈도우 서버에 php 설치 하고 웹서버를 띄우려다 보니 curl 을 실행 시 위와 같은 오류가 나타났습니다.

phpinfo.php 에는 openSSL, cURL 모두 정상 이었고, 방화벽도 80포트 인 아웃 설정 해 놓았는데도 말이죠ㅠ


그럴땐 이렇게 하시면 됩니다.


1. cacert.pem 다운 ↓↓↓

https://curl.haxx.se/ca/cacert.pem



php 설치된 경로에 가서

php.ini 를 메모장으로 여신 뒤 맨 마지막 줄에

아래 내용을 추가 하시면 됩니다.


curl.cainfo = <absolute_path_to> cacert.pem

ex)

curl.cainfo = d:\web3\cacert.pem


만약 77 오류가 난다면 경로가 잘못된 것이니 경로 지정 시에 공백이 들어가 있는지 확인 하시면 됩니다.


안되시면 댓글 달아주세요 확인하는 데로 도움 드리겠습니다.


감사합니다.

오늘은 이전 시간까지 했던 텔레그램 봇을 종합하여 PHP 연동을 해보겠습니다.

가장 간단한 방법으로 코인 지정가 알람을 만들어 보겠습니다. 다른 것들과 적용 하여 여러분 만의 텔레그램 봇을 완성 시키길 바랍니다.


오늘 개발을 이어 나가시려면 아래 4가지 모두 수행 되어야 합니다.


1. 텔레그램 봇 생성하기.

http://hatpub.tistory.com/48?category=851684


2. 생성한 텔레그램 봇 채널 관리자로 추가 하기.

http://hatpub.tistory.com/49?category=851684


3. 봇이 관리자인 채널에 메시지 보내기.

http://hatpub.tistory.com/50?category=851684


※ Snoopy 를 이용하여 코인 거래소 API 불러 오기

http://hatpub.tistory.com/39




아래와 같이 간단하게 만들어 보았습니다.


HTML 까지 포함된 PHP 파일을 첨부 하였으니 필요 하신 분은 다운 받아서 활용하시기 바랍니다.

여러분 개개인에게 도움이 될만한 코딩 하시길 바랍니다.


PHP 파일 다운 받기

datepicker.php



	
<?
// Snoopy.class.php 사용하게끔 포함 하기.
include_once './insert/Snoopy.class.php';
$snoopy = new snoopy;
// 비트렉스의 값으로 불러오기.
$snoopy----->fetch("https://bittrex.com/api/v1.1/public/getmarketsummaries");
$t	 = $snoopy->results;

// Snoopy 링크 참고
preg_match_all("|MarketName\":\"(.*)\",\"High\"|U", $t, $name, PREG_SET_ORDER);
preg_match_all("|Last\":(.*),\"BaseVolume\"|U", $t, $price, PREG_SET_ORDER);

// 텔레그램 봇 API 값
$api_code = '511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA';

$int = 0;
WHILE($int < count($name)){
	//XLM 의 값이 0.00003487 미만 이면 알람 받기.
	if($name[$int][1] == 'BTC-XLM' && $price[$int][1] < 0.00003487){
		//받을 메시지 입력
		$telegram_text = $name[$int][1]." 현재 ".$price[$int][1]." 사토시" ;
		//챗 아이디와 메시지 배열에 입력
		$query_array = array(
			'chat_id' => '-1001305033363',
			'text' => $telegram_text,
		);
		// 메시지 보낼 URL
		$request_url = "https://api.telegram.org/bot{$api_code}/sendMessage?" . http_build_query($query_array);
		$curl_opt = array(
				CURLOPT_RETURNTRANSFER => 1,
				CURLOPT_URL => $request_url,
			);
		// curl로 접속
		$curl = curl_init();
		curl_setopt_array($curl, $curl_opt);

		// 응답결과는 알아서 처리.
		var_dump(curl_exec($curl));

	}
	$int++;
}

?>




결과화면





궁금하신 내용 있으시면 댓글 부탁 드립니다.

오늘은 생성한 텔레그램 봇으로 채널에 메시지를 보내 보도록 하겠습니다.

지금가지 세팅이였다면, 오늘 부터는 실제 메시지를 보내는 중요한 내용 입니다. 이글을 처음 보신다면, 아래 링크로 처음 부터 따라 하시면 좋을 것 같습니다.



1. 텔레그램 봇 생성하기.

http://hatpub.tistory.com/48?category=851684


2. 생성한 텔레그램 봇 채널 관리자로 추가 하기.

http://hatpub.tistory.com/49?category=851684





1) 생성된 채널(봇이 관리자로 들어가 있는 채널) 에 아무말이나 입력을 해 봅니다.

※ 저는 모바일로 hi 라는 말을 입력 하였습니다.





2) 이제 첫 날에 텔레그램 봇을 생성하면서 받은 API 키를 사용 해야 하라 때가 왔습니다.




아래 URL 에 API 내용을 붙여 넣기 하여 인터넷 주소창에 입력하고 이동 해 봅니다.

https://api.telegram.org/bot(이부분)/getUpdates


예) https://api.telegram.org/bot511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA/getUpdates



인터넷 창에 위의 주소로 이동을 하면 위 이미지 처럼 내용이 나타나게 됩니다.

여기서 중요한 것은 id 의 값입니다. '-' 부터 복사 해 둡니다.




3) 그럼 이제 텔레그램 봇으로 메시지를 보내 보겠습니다.

아래의 빨간 글자만 여러분의 API 값, Chat id 값으로 바꾸고 진행 하시면 됩니다.

마찬가지로 아래 URL 을 인터넷 창에 입력 하고 이동 해 보겠습니다.


https://api.telegram.org/bot(API 값 위와 동일)/sendMessage?chat_id=-1001305033363&text=Hello


예) https://api.telegram.org/bot511337000:AAG7gRmT3Ra8FYl22gekgckK_iwVwkJAAAA/sendMessage?chat_id=467385328&text=Hello




위와 같이 이미지가 뜨면서 채널에 Hello 라는 메시지가 봇을 통해 들어 온 것을 확인 하실 수 있습니다.






봇을 이용하여 채널에 메시지를 보내는 방법까지 해 보았습니다.

이 내용을 응용하여 다른 여러 프로그래밍 언어로 챗봇을 만드실 수 있습니다.

다음 시간에는 php 와 연동하여 봇으로 메시지를 보내보도록 하겠습니다.

만들어진 봇과 1:1 대화만 하신다면 굳이 채널을 만드실 필요는 없습니다.

텔레그램 봇을 만들어서 다같이 공유할 내용이 있다면 채널을 만들어 봇을 관리자로 만드시는게 좋으실텐데요.

오늘은 생성한 봇을 채널 관리자로 만드는 방법을 알아보겠습니다.


텔레그램 봇 생성하기

http://hatpub.tistory.com/48?category=851684 




1) 텔레그램 기본 화면에서 우측 상단 글쓰기 버튼을 클릭 합니다.





2) 채널 만들기를 클릭 합니다.





3) 채널명과 채널설명(선택) 을 입력 하고 다음 버튼을 클릭합니다.





4) 공개/비공개 설정을 합니다. (공개일 경우 채널 주소를 수동으로 입력 해야 합니다.)





5) 채널이 만들어 졌다면 우측 상단의 동그라미 버튼을 클릭 합니다.





6) 관리자 버튼을 클릭 하여 관리자를 추가 하여 줍니다.









7) @를 추가 하여 생성한 봇 이름을 검색 하여 추가 합니다.





8) 권한을 설저어 한 뒤 완료!




9) 위 단계를 마치면 관리자에 봇이 추가 된 것을 확인 하실 수 있습니다.



텔레그램은 다른 모바일 메신저 보다 봇을 만들고 사용하기 편리하게 되어있습니다.

저도 봇을 만들어서 암호화폐 알람을 받고 있는데요. 제가 사용하고 있는 텔레그램봇 만드는 방법을 오늘부터 차근차근 알려드리도록 하겠습니다.




1) 먼저 텔레그램 검색에서 BotFather 를 검색하고 클릭 합니다.







2) BotFather 와의 채팅에서 " /start " 라는 메시지를 보내 시작합니다.




3) " /newbot " 이라는 메시지를 보내어 새로운 봇을 생성합니다. 이 후 아래와 같이 봇의 이름과 유저명을 입력 합니다.




4) 완료가 되었다면 아래 이미지 처럼 빨간 박스의 API 값이 생성 됩니다(중요)





5) 이후 '@' 를 붙여 봇의 이름을 검색 해 봅니다.





5) 아래 이미지와 같이 되었다면 세팅 완료 입니다!




봇을 만들기 위한 첫 세팅은 끝났습니다.

참 쉽죠?


스누피(snoopy) 다운 및 이용 방법은 아래 페이지에서 먼저 확인 부탁 드립니다.


http://hatpub.tistory.com/39?category=988325

<?
include_once 'Snoopy.class.php';
$snoopy = new snoopy;
$snoopy->fetch("https://bittrex.com/api/v1.1/public/getmarketsummaries");
$t	 = $snoopy->results;

preg_match_all("|MarketName\":\"(.*)\",\"High\"|U", $t, $name, PREG_SET_ORDER);
preg_match_all("|\"BaseVolume\":(.*),\"TimeStamp\":|U", $t, $volume, PREG_SET_ORDER);
preg_match_all("|Last\":(.*),\"BaseVolume\"|U", $t, $price, PREG_SET_ORDER);

?>

업로드된 Snopy.class.php 파일을 먼저 인클루드 한뒤,


Json 형태의 API 사이트를 fetch 에 담아 $t 변수에 넣습니다.


preg_match_all 함수를 이용 하여 MarketName(코인명) 은 $name 변수에,

 Last(최근거래가격)은 $price 변수에, BaseVolume(24시간비트볼륨) 은 $volume 변수에 항목의 모든 값을 2차 배열로 담아 옵니다.



↓ https://bittrex.com/api/v1.1/public/getmarketsummaries 접속 시 Json 형태의 값으로 아래 이미지와 같이 표시 됩니다.





<?
$int = 0;
$var = "insert into bittrex(name, price, volume) values";

WHILE($int < count($name)){
	if($int == 0){
		$var = $var."(".$name[$int][1]."',".$price[$int][1].",".$volume[$int][1].")";
	}else{
		$var = $var.",(".$name[$int][1]."',".$price[$int][1].",".$volume[$int][1].")";
	}
	$int++;
}

mysqli_query($conn, $var);
?>


$name, $price, $volume 에 담아온 값을 WHILE 을 사용하여 쿼리문을 작성 합니다.


마지막으로 mysql insert 문을 실행 시키면 값이 DB에 저장 되게 됩니다.


+ Recent posts