第1回目のBlogで「Twitter API v2とPythonを使用してToken取得(OAuth2.0)」を紹介しました。この記事の中で、「token」フォルダに「access_token.txt」と「refresh_token.txt」が作成され「Access Token」と「Refresh Token」が保管されることをお伝えしました。ただ、Access Tokenは2時間立つと期限が切れてしまいます。Refresh Tokenを使って、新しくAccess TokenとRefresh Tokenを保管しなおす方法をご紹介します。
コードの保存場所
前回同様settings.jsonファイルを読み込む必要があります。また、前回取得した「Refresh Token」を使用するので、「token」フォルダがある場所と同階層にコードを保管する必要があります。
コード紹介
import os
import json
import requests
ini_json_file = open('./settings.json', 'r')
ini_json_data = json.load(ini_json_file)
os.makedirs("./token/", exist_ok=True)
store_token_place = "./token/"
refresh_token_file = store_token_place + "refresh_token.txt"
with open(refresh_token_file,'r', encoding='utf-8-sig',newline="") as f:
refresh = f.read()
def store_tokens(access_token, refresh_token):
store_token_place = "./token/"
access_token_file = store_token_place + "access_token.txt"
refresh_token_file = store_token_place + "refresh_token.txt"
with open(access_token_file,'w', encoding='utf-8-sig',newline="") as f:
f.write(access_token)
with open(refresh_token_file,'w', encoding='utf-8-sig',newline="") as f:
f.write(refresh_token)
client_id = ini_json_data["client_id"]
client_secret = ini_json_data["client_secret"]
token_url = "https://api.twitter.com/2/oauth2/token"
data = {
'refresh_token': refresh,
'grant_type': 'refresh_token',
}
response = requests.post(token_url, data=data, auth=(client_id, client_secret))
jsondata = response.json()
#print(jsondata["access_token"], jsondata["refresh_token"])
store_tokens(jsondata["access_token"], jsondata["refresh_token"])
これだけを実行しても味気ない感じになりますが、print文のコメントを外して、実行前の「Access Token」「Refresh Token」と実行後のそれを比べてみると結果がわかると思います。
最後に書籍のご紹介です。
中級者向けの書籍になります。Pythonでスクレイピングを行うためにとても役に立ちました。またスクレイピングした情報を機械学習する方法も紹介されています。最新のDeepLearningとまではいきませんが、この書籍どおりにコードを入力することで機械学習の基礎についてだいぶ理解が深まりました。この書籍をベースに青空文庫から文豪のデータを取得し、文豪っぽいことを言ってみるチャットボットを作ることができました。日本語の精度は低かったのですが、機械学習について勉強になりました。おすすめです。
いかがでしたでしょうか?次回は実際にTweetのアナリティクス取得の紹介を予定しています。
コメント