LoginSignup
7
2

More than 5 years have passed since last update.

非エンジニアがPythonのtwitterを使っておすすめレシピをTwitterに投稿★本日の献立を考える②

Last updated at Posted at 2018-12-18

この記事は Stylez Advent Calendar 2018 の 19日目の記事です。
(今回も大安ゲット!!)

非エンジニアがPythonのrequestsを使って楽天レシピからおすすめレシピを取得★本日の献立を考える①
の続きです!

①以前からAPIで何かするってことをしたかった。
②現在勉強中のPythonでなんか作ってみたかった。
③Lambdaを使って何かできないかな~、サーバレスかっちょいいと思った。
④今晩作るおすすめレシピをゲットできたら良いな~と思った

という動機のもと、

非エンジニアが
「PythonとAWS Lambdaを使ってAPIで取得したデータをTwitterに自動でつぶやく」ことに挑戦しています。

思いの他、今後の構想で考えていた内容のひとつ、
「Twitter APIを使う」はさくさくとできました。

Twitter APIを使って楽天レシピAPIから取得したレシピを、投稿しています!

本記事は、
Twitter developer アカウント登録~Pythonを活用してTwitterに投稿するまでです。

前回の記事内容

試してみたこと

  • Pythonのrequestsを使ってAPI情報を取得
  • 楽天レシピAPIから人気メニュー情報を表示

今後の構想として、以下をあげさせていただいています。

  • TwitterのAPIを利用する ←今回の記事
  • Lambdaで、Twitterに自動投稿

Twitter API Keys を取得する

で、一応構想を書いたからには、まずはTwitter APIについて勉強せねば!と思い、
「Twitter API」などで検索。

とりあえず以下から開発者登録をしなきゃいけないらしいので、
開発者登録。
https://developer.twitter.com/

登録するのに参考にしたのは以下の記事。
Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ ※2018年9月時点の情報

英語で申請しました!

なんだかよくわかんないけど、
審査もなく、API keysとAccess token & access token secretが発行されたよ。。。?

「分析しません」って書いたからなのかな??

楽天レシピAPIで取得したレシピをTwitterに投稿

個人的に、一番分かりやすかった、
PythonでTwitterに投稿に関する記事は以下です。
Python3で簡単にtwitterに投稿する

ドキドキしながら、
取得した必要なキーとアクセストークンで、
全く同じソースを実行。。。

Twitterに投稿されていました!!!

「意外といけたのかな。。。?」と思い。。
そのまま、楽天レシピから取得したレシピをTwitterへ投稿!

今回は人気メニューのランキング2位の情報を取得するようにしました。

import twitter

import pprint
import requests

url = 'https://app.rakuten.co.jp/services/api/Recipe/CategoryRanking/20170426?applicationId=XXXXXXXXXX&categoryId=30'
api_data = requests.get(url).json()

for menu in api_data['result']:
      if menu['rank'] == ('2'):
            menu_title = menu['recipeTitle']
            menu_url = menu['recipeUrl'] 

recipe = menu_title + menu_url

# 取得したキーとアクセストークンを設定する
auth = twitter.OAuth(consumer_key="XXXXXXXXXX",
                     consumer_secret="XXXXXXXXXX",
                     token="XXXXXXXXXX",
                     token_secret="XXXXXXXXXX")

t = twitter.Twitter(auth=auth)

# twitterへメッセージを投稿する 
t.statuses.update(status="本日のおすすめレシピ:"+recipe)

Twitterを確認してみると・・・
rakuten0201.PNG

無事投稿されていました~♪♪

改めて今後の構想:Lambdaを使って自動でつぶやきたい

やはり、ここまでだと本テーマにした理由の③、
Lambdaを使って何かできないかな~、サーバレスかっちょいいと思った。
が試せていない!!

今後の構想として、以下を考えています。

  • Lambdaで、Twitterに自動投稿

なのですが、
現状、ここまで実験できていない。。。
(どこかで見た文章)

無事、本テーマにした理由①~④を実現する
「PythonとAWS Lambdaを活用して、API取得情報をTwitterに自動投稿」ができました。

Stylez Advent Calendar 2018の24日に続編かつ結末が公開される予定です。

きっと世の中に、類似の使いやすくて便利なBotはあるのですが、
(事実、自分の登録しているLINEアカウントでも本日のおすすめレシピ送られてくるし・・)
自分で作ることに意味がある!とやる気を失わずに頑張りました。。。

また、改めまして、
学習の参考にさせていただいてる記事の著者さんありがとうございます。

本記事についての修正やもっとコードはこうしたら良いよ、などがありましたら、
引き続きコメントをお待ちしています。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2