Feedlyのリフレッシュトークンを使ってアクセストークンを取得する
2026/01/05
FeedlyというRSSリーダーから連携している構成があります。
Feedlyのアカウントがフリープランでしたので、アクセストークンしか使用できず、アクセストークンが期限切れになると手動更新が必要でした。
これが面倒でしたが、プロプランに変更したので、リフレッシュトークンが使用できるようになりましたのでアクセストークンを自動で取得するようにしました。
ひとまずこの記事ではアクセストークン取得のところだけ記録します。
上図のFeedly API呼び出しの部分です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
def get_access_token(base_url, refresh_token): url = 'https://cloud.feedly.com/v3/auth/token' data = { 'client_id': 'feedlydev', 'client_secret': 'feedlydev', 'grant_type': 'refresh_token', 'refresh_token': refresh_token } headers = {'Content-Type': 'application/json'} response = requests.post(url, headers=headers, json=data) response_data = response.json() return response_data['access_token'] |
これでアクセストークンが取得できました。
クライアントIDとクライアントシークレットが’feedlydev’なのが雑な感じなんですが、こうするそうです。
ドキュメントは見つからなかったのですがこちらの【GAS】Feedly APIを叩いてみたときのメモを参考にさせていただきました。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
unix_time = int(time.mktime(interval_time.timetuple())) * 1000 headers = {'Authorization': f'Bearer {access_token}'} feedly_url = 'https://cloud.feedly.com/v3/streams/contents?streamId=user/xxx/tag/zzz' response = requests.get( f'{feedly_url}&count=100&newerThan={unix_time}', headers=headers ) stream_data = json.loads(response.text) return stream_data.get('items', []) |
xxxにはユーザーIDが入りますが、これは画面操作でリフレッシュトークンを取得する際に表示されます。
zzzはタグの名前です。私は特定のタグを付けた記事だけを連携するようにしています。
実際は、URLや取得記事数などは、パラメータストアとSecrets Managerから取得しています。
コード全体はGitHubに公開しています。
feedly_to_dynamodb
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
特定AWSアカウント特定リージョンのCloudFormationスタックを削除するLambda(Python)
やりたいこと 特定アカウント内特定リージョン内のCloudFormationスタ …
-
-
AWS Lambda(Python3)でSelenium + Chrome Headless + でwebスクレイピングする
インターネット上に公開されている情報をDynamoDBにつっこみたいだけなので、 …
-
-
EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか
「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …
-
-
AWS KMSマルチリージョンキーを確認しました
2021年6月にKMS マルチリージョンキーがリリースされました。 マルチリージ …
-
-
「JAWS-UG DE&I AWS re:Invent 2024 recap サーバーレス ハンズオン」でサポーターしてきました
JAWS-UG DE&I開催の「AWS re:Invent 2024 r …
-
-
Cloud9環境を共有した際の環境認証
Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行す …
-
-
Amazon Chimeのチャットを使ってみました
Amazon Chimeはビデオミーティングや配信したりというサービスですが、チ …
-
-
SageMaker AI StudioでJupyterLab スペースを作成しJupyterLab を起動、S3拡張のインストール
JupyterLab ユーザーガイドとJupyterLab 拡張機能を参照して、 …
-
-
ALBにWAFを関連付けて特定のヘッダー以外はブロックする
おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …
-
-
Systems Manager セッションマネージャアクセスのCloud9(SSHなし)
作成画面 いつからできるようになっていたのか気づいてなかったのですが、Cloud …


