見出し画像

お役立ち Twitter Bot を作りながら学ぶ AWS ドリル 第 5 回をやってみた

毎月の勉強に取り入れているAWSのお勉強

今回は
「日本語で呟いたものを自動で英語に翻訳する」
ってもの
文句を言うわけではないけども、英語を使うことって個人的にはないので
もう少し使えそうなものが来てくれると嬉しかったなって印象
でも、本当に勉強になる。
今後はどんなことをやりたいかを自分で考えていろいろ調べてみよう

import json
import os
from requests_oauthlib import OAuth1Session
from datetime import datetime, timedelta, timezone

import boto3
ssm_client = boto3.client('ssm')
translate_client = boto3.client('translate') # 追加

oauth = None

def lambda_handler(event, context): 
    init()
    
    tweet_text_ja = 'おはようございます、今日は翻訳 Bot を作っていきます。'
    tweet(tweet_text_ja)
    # 修正(ここから)
    translated_text_en = translate_ja_to_en(tweet_text_ja)
    tweet(translated_text_en)
    # 修正(ここまで)    
    
def init():
    response = ssm_client.get_parameter(
        Name='/credentials/twitter',
        WithDecryption=True
    )
    twitter_parameters = json.loads(response['Parameter']['Value'])

    consumer_key = twitter_parameters['consumer_key']
    client_secret = twitter_parameters['client_secret']
    access_token = twitter_parameters['access_token']
    access_token_secret = twitter_parameters['access_token_secret']
    
    global oauth
    oauth = OAuth1Session(consumer_key, client_secret, access_token, access_token_secret)
        
def tweet(text):
    payload = {'text': text}
    response = oauth.post(
        'https://api.twitter.com/2/tweets',
        json=payload,
    )
    if response.status_code != 201:
        raise Exception(
            '[Error] {} {}'.format(response.status_code, response.text)
        )
        
# 以下を追加
def translate_ja_to_en(text_ja):
    response = translate_client.translate_text(
        Text=text_ja,
        SourceLanguageCode='ja',
        TargetLanguageCode='en',
    )
    return response['TranslatedText']

いままでやったことまとめてみると
毎朝つぶやく


  • 毎朝botとしてツイートする

  • 曜日を指定できる

  • 英語に翻訳する

  • ツイート内容を検索してその結果をつぶやく


https://aws.amazon.com/jp/builders-flash/202205/aws-drill-twitter-bot-5/?awsf.filter-name=*all

この記事が気に入ったらサポートをしてみませんか?