LamdaでPythonを使い、TwitterAPIで自動「いいね」する！

今回のものは、過去の[この記事](https://qiita.com/gurensouen/items/484e3198bcafa69f5c8b)を元に加筆/修正したものになります！

記事タイトル通り、AWSサービスのLambdaを使用して、Twitterの自動「いいね」などをしつつ、LambdaでPythonを使う方法にフォーカスを当てて簡単に説明していきます。

##本題の前に
- TwitterAPIを使用するために必要なアクセストークンの取得は[こちら](https://bookreco.net/program/twitterapi_using/)で！

- Pythonのpipコマンドのインストールは[こっち](https://qiita.com/suzuki_y/items/3261ffa9b67410803443)で！



##本題

####ファイル作成

デスクトップに作業用ディレクトリを作成しましょう。
コマンドでも、「control＋クリック」でも構いません。
ただ後々めんどくさくなるので、ローマ字表記にしましょう。
作成したら、ターミナルかコマンドプロンプトで、ライブラリをインストールします。

```ターミナル
$ pip install tweepy　-t ~/Desktop/任意ディレクトリ
```

インストールが終わったら、ディレクトリ内で実行ファイルを作成します。

```twitterGood.py
import tweepy

def lambda_handler(event, context):
    CONSUMER_KEY = "TwitterAPIで取得したコンシューマキー"
    CONSUMER_SECRET = "TwitterAPIで取得したコンシューマシークレットキー"
    ACCESS_TOKEN = "TwitterAPIで取得したアクセストークン"
    ACCESS_SECRET = "TwitterAPIで取得したアクセスシークレットトークン"
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
    api = tweepy.API(auth)
    search_results = api.search(q="検索したいワード", count=取得数)
    for result in search_results:
        tweet_id = result.id
        try:
            api.create_favorite(tweet_id)
        except Exception as e:
            print(e)
```

これで検索に引っかかったツイートに「いいね」をするプログラムができました。
作成したファイル、インストールしたライブラリを選択して、圧縮します。

<img width="603" alt="スクリーンショット 2019-12-17 22.16.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/abcf48e5-2816-12b3-8d88-a2c3d648f054.png">


出来上がったzipファイルの名称は「lambda.zip」にしておきます。


では、AWS側の設定をします。

####AWS設定

AWSコンソールに[ログイン](https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3Fstate%3DhashArgs%2523%26isauthcode%3Dtrue&client_id=arn%3Aaws%3Aiam%3A%3A015428540659%3Auser%2Fhomepage&forceMobileApp=0)します。



コンソール画面検索枠で「Lambda」を検索

<img width="1359" alt="スクリーンショット 2019-12-14 21.39.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/251aabe9-4550-e8cd-d244-1a5c8c920d5d.png">


関数を作成

<img width="1388" alt="スクリーンショット 2019-12-14 21.42.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/30e0689d-7969-f06c-8c67-31017c670ca5.png">

- 一から作成
- 関数名を入力
- ランタイムを「Python3.8」を選択
- アクセス権限は基本的な Lambda アクセス権限で新しいロールを作成

上記選択後、右下の関数の作成
<img width="1330" alt="スクリーンショット 2019-12-14 21.44.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/47ab293a-39cd-2b37-9172-7b7ff16a6ccd.png">


下にスクロールしたとこにある
- コードエントリタイプを「.zipファイルをアップロード」を選択
- アップロードから先ほど作成して、圧縮したファイルをアップロード
- アップロードしたら、右上の保存

<img width="1366" alt="スクリーンショット 2019-12-14 21.50.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/bf5fc6e1-38db-cdff-a632-0825a4fd6935.png">

- 赤枠内を、「作成したファイル名.関数名」にします。（今回は、「twitterGood.lambda_handler」です。）
- その後、右上の保存をクリック

<img width="1343" alt="スクリーンショット 2019-12-17 22.19.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/5bdf40d1-28e2-0059-e7fa-2612d5f42a24.png">


- テストをクリックして、赤枠内に適当な名前をつけて、テストを実行
　（他の部分はそのままでOK）

<img width="829" alt="スクリーンショット 2019-12-17 22.25.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246668/99e58855-a8e6-6639-4277-fc4e8c77325e.png">

以上で、Twitterのツイート「いいね」自動プログラム＋Lambdaは完成です。

いかがだったでしょうか？
ご指摘等ありましたら、コメントよろしくお願いします。

それでは、素敵なLambdaライフを。