중요한 이미지를 즉시 호출할 수 있는 LINE BOT

「면허증 업로드는 번거로움」



은행 계좌 및 증권 계좌 개설 등
때때로 요구되는 면허증 업로드.

일일이 면허증의 면과 뒷면을 스마트 폰으로 사진 찍고,
PC에 전송하여 업로드한다는 의외로 번거롭지요.

뭐 진짜 걸리는 시간은 그런 없지만,
개인적으로 이런 작업은 귀찮다고 후회해 버리는 버릇이 있습니다.

그래서, 이런 지금 원하는 사진을 즉시 호출할 수 있으면 좋겠다고,
순식간에 불러낼 수 있는 LINE BOT를 만들어 보았습니다.

만들고 싶은 것



LINE BOT에 대한 메시지 내용에 따라,
몇 가지 원하는 이미지 중에서 선택을 꺼내려고했습니다.

다만, 최초의 발상은 이쪽의 스케치로.
아이디어 스케치라고 불리는 기술입니다.



만든 것



면허증 사진을 쉽게 불러낼 수 있는 LINE BOT을 만들어 보았다. #Linebot #protoout #제조 피 c. 라고 r. 이 m/7YGnrXPnxr — 야나세 히로유키@인력개발×UX전문가 (@btap_hiro) August 26, 2020


GAS를 사용하면 잘 작동하는지 궁금해했지만,

복수의 화상 취득은 잘 되지 않고, 우선 1장의 화상을 취득하는 곳만 할 수 있었습니다.



시행착오한 곳



이 부분의 URL을 어떻게 넣을지 중요하지만

꽤 잘 작동하지 않았습니다.




    return client.replyMessage(event.replyToken, {
        type: 'image',
        originalContentUrl: 'https://practical-volhard-aebb3b.netlify.app/image01.jpeg',
        previewImageUrl: 'https://practical-volhard-aebb3b.netlify.app/image01.jpeg',
    });


우선 google 드라이브에 이미지를 넣고

공유할 때 게시되는 링크의 URL을 입력해 보았습니다.



https://drive.google.com/file/d/{ID}/view?usp=sharing


그러나 이것은 전혀 표시되지 않습니다.



다양하게 조사하면, 분명히 다음과 같이 URL을 변경할 필요가 있다는 것으로,

해보았습니다.



http://drive.google.com/uc?export=view&id={ID}


그러나 이것도 움직이지 않습니다.

아무래도 https로 시작하는 것이 아니라면 안되는 것 같다.

덧붙여서, 이 URL을 https로 입력해 보면, 움직이지 않고.



그럼, 이번에는 dropbox에서 시도하려고했지만,

이미지를 읽으려고 할 때까지 갔지만 표시되지 않습니다.



그럼 어떻게 할까, 라고 조사해, 도착한 기사가

여기



Netlify라면 잘 돼, 라고 써 있었으므로, 해 보면, 잘 되었습니다.




    return client.replyMessage(event.replyToken, {
        type: 'image',
        originalContentUrl: 'https://nostalgic-villani-a2f764.netlify.app/image02.png',
        previewImageUrl: 'https://nostalgic-villani-a2f764.netlify.app/image02.png',
    });


       



코드




'use strict';

const express = require('express');
const line = require('@line/bot-sdk');
const PORT = process.env.PORT || 3000;

const config = {
    channelSecret: 'channelSecret',//自分のchannelSecretを入力
    channelAccessToken: 'channelAccessToken'//自分のchannelAccessTokenを入力
};

const app = express();

app.get('/', (req, res) => res.send('Hello LINE BOT!(GET)')); 
app.post('/webhook', line.middleware(config), (req, res) => {
    console.log(req.body.events);


    if (req.body.events[0].replyToken === '00000000000000000000000000000000' && req.body.events[1].replyToken === 'ffffffffffffffffffffffffffffffff') {
        res.send('Hello LINE BOT!(POST)');
        console.log('疎通確認用');
        return;
    }

    Promise
        .all(req.body.events.map(handleEvent))
        .then((result) => res.json(result));
});

const client = new line.Client(config);

async function handleEvent(event) {
    if (event.type !== 'message' || event.message.type !== 'text') {
        return Promise.resolve(null);
    }

    return client.replyMessage(event.replyToken, {
        type: 'image',
        originalContentUrl: 'https://nostalgic-villani-a2f764.netlify.app/image02.png',//ここのNetlifyに取り込んだ画像のURLを入力
        previewImageUrl: 'https://nostalgic-villani-a2f764.netlify.app/image02.png',//ここのNetlifyに取り込んだ画像のURLを入力
    });
}

app.listen(PORT);
console.log(`Server running at ${PORT}`);




요약



잘 생각하면 Netlify라면 URL에서 이미지를 볼 수 있으므로

중요한 이미지라면 보안 관리가 필요하네요.



거기 대책을 이번에 살펴보겠습니다.



좋으면 LGTM 부탁드립니다!


좋은 웹페이지 즐겨찾기