매일 아침 스모 역사의 이미지를 보내주는 LINE BOT을 만들었다.



소개



아침에 일어나는 것이 매우 약합니다.
스마트 폰의 알람을 여러 세트하고 있습니다만, 듣고 질리기 때문에, 응,이라고 생각하는 것만으로 또 곧 자고 버립니다.

거기서
알람 설정 시간에 정기 실행하는 자신이 좋아하는 것의 이미지를 인터넷에서 주워 보내주는 LINE BOT
를 만들어 보았습니다.

그물 이미지 가져오기(Google Custom Search API)



Google Custom Search API를 사용하여 이미지 수집 을 참고로,
API를 사용 설정하여 자신이 좋아하는 이미지를 인터넷에서 가져왔습니다.

def get_image_urls(search_word):
    CUSTOM_SEARCH_API_KEY = "**********"
    CUSTOM_SEARCH_ENGINE_ID = "**********"
    custom_search_url = f"https://www.googleapis.com/customsearch/v1?key={CUSTOM_SEARCH_API_KEY}&cx={CUSTOM_SEARCH_ENGINE_ID}&searchType=image&q={search_word}&num=10"
    img_urls = []
    res = urllib.request.urlopen(custom_search_url)
    data = json.loads(res.read().decode('utf-8'))
    for i in range(len(data["items"])):
        img_urls.append(data["items"][i]["link"])
    return img_urls

def get_image(search_word):
    img_urls = get_image_urls(search_word)
    img_url = random.choice(img_urls)
    img = requests.get(img_url).content
    return img

자동으로 LINE 보내기(LINE Notify)



Python에서 LINE Notify로 LINE으로 메시지 보내기 을 참고로,
LINE Notify에 등록하여 이미지를 전송하는 BOT을 만들었습니다.
def line(img):
    LINE_NOTIFY_TOKEN = "**********"
    line_notify_url = 'https://notify-api.line.me/api/notify'

    message = '起きる時間です'
    payload = {'message': message}
    headers = {'Authorization': 'Bearer ' + LINE_NOTIFY_TOKEN}
    files = {"imageFile": img}
    r = requests.post(line_notify_url, headers=headers, params=payload, files=files)

프로그램 정기 실행(AWS Lambda + CloudWatch)



12시에 점심을 알리기 위해 Slack에 "밥입니다"의 이미지를 게시하고 싶습니다. 을 참고로 Lambda Function을 만들고 CloudWatch에서 정기 실행했습니다.
타사 라이브러리 인 requests를 사용할 때 【AWS】Lambda에서 pip하고 싶을 때 할 일을 참조했습니다.
import json
import random
import urllib.request
import urllib.parse
import requests

def lambda_handler(event, context):
    search_words = ['千代丸', '遠藤関', '高見盛', '朝青龍', '寺尾力士', 'わんぱく相撲']
    search_word = random.choice(search_words)
    search_word = urllib.parse.quote(search_word)
    img = get_image(search_word)
    return line(img)

요약



이것으로 매일 아침 깨끗이 깨어날 수 있을 것 같습니다.

코드는 모두 github에 있습니다. 실수 등 교수해 주시면 기쁩니다.

좋은 웹페이지 즐겨찾기