일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- iceland
- 기숙사
- 행성
- 금성
- 게임
- 별사진
- 삼각형자리은하
- 성운
- VC++ 6.0
- optolonglextreme
- 카이스트
- takahashitelescope
- 은하
- 목성
- GALAXY
- asiairpro
- astrophotography
- 엄마
- osaka
- 오사카
- mavic pro
- zwo
- fc100df
- 일본
- asi294mcpro
- 토성
- narrowbandimage
- 할아버지
- 달
- m33
Archives
- Today
- Total
June's Story
Telegram bot으로 보낸 사진 Google Cloud Storage에 저장하기 본문
Google Cloud Platform + PHP로 Telegram bot 만들기 에서 만든 봇을 가지고 사진을 처리하는 내용
1. Google Cloud Storage에 Bucket 생성
- 탐색메뉴 > Cloud Storage > 브라우저 클릭
- 버킷 만들기 버튼 눌러서 Bucket 생성
- 원하는 이름만 입력하고 맨 아래 만들기 버튼 클릭해서 완료
- GCP에서 할일은 끝
2. Telegram bot code 수정
- GCP 메인 화면으로 돌아가서 Cloud Shell을 열고 index.php 파일을 다음과 같이 수정
- 수정하고 터미널 열기 버튼을 눌러서 터미널에 gcloud app deploy 눌러서 앱 deploy
- BOT_TOKEN랑 버킷이름을 자기것으로 바꾸면 됨
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
32
33
34
35
36
37
38
39
40
|
<?php
define('BOT_TOKEN', '5156495869:AAGq5jjsBvA_UaeN-eZUXxYgJq7RXzaXd3s');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
$content = file_get_contents("php://input");
$update = json_decode($content, true);
$chatId = $update["message"]["chat"]["id"];
$photo = $update["message"]["photo"];
function getSslPage($url, $postData = null)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
if($postData != null)
{
curl_setopt($ch, CURLOPT_POST, count($postData));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
}
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
if($photo)
{
$result = getSslPage(API_URL."getFile?file_id=".$photo[count($photo)-1]["file_id"]);
$json = json_decode($result, true);
$path = $json["result"]["file_path"];
$file_content = getSslPage("https://api.telegram.org/file/bot".BOT_TOKEN."/".$path);
file_put_contents("gs://telegram_bot_test/".$chatId.".jpg", $file_content);
}
|
cs |
3. Telegram bot 에서 테스트
- bot으로 아무 사진이나 보내면 버킷에 파일이 업로드 된 것을 확인 할 수 있음
Comments