TwitterのREST APIについて その8(AWSからツイート操作まで)
こんにちは!こんばんは、みんろです!
TwitterAPIを使って色々してみたいPart8です!
なんとか挫折する事なくここまで来れました。完全自動化までもう少しです。
【前回】TwitterのREST APIについて その7(AWSの構築まで)
https://minro-blog.info/system/develop/twitter-api-7/
AWSサーバにPythonファイルを転送し、実行していくよ!
①PythonファイルをAWSサーバに転送する。
scpコマンドで転送していきます。
scp -i {pem} {転送ファイル} {ユーザ名}@{Amazonサーバホスト名}: {転送先ディレクトリ}
scp -i ~/.ssh/minro-ec2.pem ~/work/minro_twitter/config.py ec2-user@ec2-3-16-187-35.us-east-2.compute.amazonaws.com:/home/ec2-user/
scp -i ~/.ssh/minro-ec2.pem ~/work/minro_twitter/postTweet.py ec2-user@ec2-3-16-187-35.us-east-2.compute.amazonaws.com:/home/ec2-user/
転送した「postTweet.py」のソースコードは下記の通り。
# -*- coding: utf-8 -*-
import json, config #標準のjsonモジュールとconfig.pyの読み込み
from requests_oauthlib import OAuth1Session #OAuthのライブラリの読み込み
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
#認証処理
twitter = OAuth1Session(CK, CS, AT, ATS)
#ツイートポストエンドポイント
url = "https://api.twitter.com/1.1/statuses/update.json"
tweet = "testAWS"
#パラメータにツイート内容をセット
params = {"status" : tweet}
#post送信
res = twitter.post(url, params = params)
if res.status_code == 200: #正常投稿出来た場合
print("Success.")
else: #正常投稿出来なかった場合
print("Failed. : %d"% res.status_code)
②サーバ上で実行してみる。
転送したファイルを早速実行してみるも、、エラー!!
そういえば「OAuthのライブラリ」インポート必要だったな。。
③OAuthのライブラリをAWSサーバ上にインポートします。
当然ながら、pipコマンドも実行できなかったので、そこからインストールが必要。
①rootユーザへの切り替え
②pipインストールファイルを入手
③pipのインストール実行
④OAuthライブラリをインポート
の順で、実施していきます。
#rootに切り替え
sudo su -
#pipのインストールファイル入手
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
#pipのインストール実行
python get-pip.py
#OAuthライブラリのインストール
pip install requests requests-oauthlib
④リトライ!
成功!!
今日は短いけど、ここまで!