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

 

④リトライ!

 成功!!

 

今日は短いけど、ここまで!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。