2020/08/31

[Python]TweepyでTwitterに投稿できるようにしました

pythontwitter

概要

本サイトの記事投稿と同時にTwitterの私のtimelineにtweetできるようにしてみました。

本サイトのAPIはPythonを使っており、Pythonのライブラリである Tweepy を使って投稿できるようにしました。

実装内容

事前準備

  1. twitterのdeveloper登録を済ませてない場合は、済ませておきます。
  2. Twitter Developersにログインしてアプリを作成します
  • App permissionsには Read and Write の権限を追加しておきます
  1. Authentication Tokensから、Access Token & Secretを作成します

以上の設定で、以下が取得できるのでメモしておきます。

  • API Key
  • API Secret
  • Access Token
  • Access Token Secret

tweepy install

% poetry add tweepy

実装

デフォルメすると以下のような実装になりました。

from typing import Iterable
import tweepy

TWITTER_API_KEY="API Key"
TWITTER_API_SECRET="API Secret"
TWITTER_ACCESS_TOKEN="Access Token"
TWITTER_ACCESS_TOKEN_SECRET="Access Token Secret"

auth = tweepy.OAuthHandler(TWITTER_API_KEY, TWITTER_API_SECRET)
auth.set_access_token(TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

message: str = 'tweet from python script'
tags: Iterable[str] = ['python', 'twitter']
url: str = 'https://kurozumi.github.io/tweepy/index.html'

# twitter hashtagの整形
tags = map(lambda x: x if x.startswith('#') else f"#{x}", tags)
tag_str = " ".join(tags) if tags else ""
message = f"{message}\n{tag_str}\n{url}"

api.update_status(message)

以上になります。