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教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
TuneCoreの売上データCSVをS3に格納してAthenaのクエリをRe:dashのデータソースにして可視化する
先日参加しましたAWS Summit Tokyo 2017で、 [JapanTa …
-
-
AWS Client VPNの接続ログを確認しました
AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …
-
-
AWS EC2 でインスタンスにIPアドレスを紐付ける
AWS EC2で作ったサーバは何もしなければ起動するたびにIPアドレスが変わって …
-
-
EC2とRDSのMySQLを他のAWSアカウントへ移設する
他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …
-
-
EC2スポットインスタンスの中断通知を受ける
オートスケーリンググループでEC2インスタンスをスポットインスタンスで使用してい …
-
-
前からできましたっけ??CloudWatch Logsの保持設定を複数まとめて設定
AWSの個人アカウントで要らなさそうなリソースの断捨離をしてます。 CloudW …
-
-
AWS東京リージョンのAZ(apne1-az1)障害時の当ブログで発生していたことの記録
日本時間2/19 23:01頃より、東京リージョン、特定AZの1つでEC2インス …
-
-
Organizations対応のAWS CloudTrailのAthenaテーブルでPartition Projectionを使用しました
パーティション向けのAlterテーブルの定期実行が面倒だと思っていたら、Part …
-
-
Amazon S3アクセスポイント経由からアクション可能なポリシー
S3アクセスポイントを使うことで、複雑で長いバケットポリシーを避け、アクセスポイ …
-
-
AWSアカウントrootユーザーのメールアドレスを変更
昔、うっかり会社の個人メールアドレスで作ってしまったAWSアカウントがあるのでメ …


