Feedly APIを使用してみる(3)ユーザー情報、サブスクリプション情報(カテゴリ、フィード)の取得
前記事ではリフレッシュトークン、アクセストークンについて記載しました。
今回はいよいよ実際にFeedlyからデータを取っていきたいと思います。
本記事での流れとしては以下になります。
・ カテゴリ一覧を取る。
・ Feed一覧を取る。
では実際に前回取得したアクセストークンを使用して、Feedlyから情報(カテゴリ、フィードなど)を取得してみましょう。
前記事で紹介したサンプルツールをもとに説明記載していきます。
開発環境
・ Windows10
・ Microsoft Visual Studio 2019 (VB .NET)
・ Feedly(https://feedly.com/)プラン:Pro
ユーザー情報取得
ユーザ情報の習得は
RSSharp.Feedly.Model.Profile=RSSharp.Feedly.ApiCalls.Profiles.get(“アクセストークン”)
で取得することができます。
Private rssPro As RSSharp.Feedly.Model.Profile
rssPro = RSSharp.Feedly.ApiCalls.Profiles.get(pAccessTkn)
rssProへ取得したユーザー情報が格納されます。ユーザー情報には、ID以外にもFeedly(https://feedly.com/)でユーザー登録した際の各種情報が含まれます。
取得したユーザー情報のIDを使用することで、タグやカテゴリに含まれる記事を纏めて取ることができます。本サンプルプログラムでは「userId/category/global.all」で、カテゴリに含まれる記事をまとめて取得しています。 ※userId=取得したユーザーID
global.all以外にも様々な指定方法で、記事を取得することが可能です。
詳細は公式サイトのこちらのページ「https://developer.feedly.com/cloud/」で、Global Resource Idsのところを参照下さい。
カテゴリ一覧とFeed一覧の取得
Feedlyのサブスクリプション情報をアクセストークンで取得し、カテゴリ一覧とフィード一覧を作ります。
サブスクリプションは以下で取得できます。
List(Of RSSharp.Feedly.Model.Subscription) =RSSharp.Feedly.ApiCalls.Subscriptions.get(“アクセストークン”)
取得したサブスクリプションには登録している全てのフィード、カテゴリが含まれます。取得したサブスクリプションの情報を元に実際にプログラムで上記のリストを作成します。
' サブスクリプションを取得します。
rssSubSc = RSSharp.Feedly.ApiCalls.Subscriptions.get(pAccessTkn, rateVal)
' 取得したサブスクリプションからカテゴリとフィードをまとめていきます。
' 取得したデータはPrivateで定義した構造体の変数feedList、cateListへ格納します。
' 実際に記事を取得する際はここで格納したfeedList、cateListを使用します。
feedList = Nothing
cateList = Nothing
For i = 0 To rssSubSc.Count - 1
' カテゴリが登録されているかの確認(フィードはカテゴリ未登録のものもあるため)
If 0 < rssSubSc(i).categories.Count Then
' categories(0).id→このidでカテゴリに登録されている記事を纏めて取得します。
cateID = rssSubSc(i).categories(0).id
cateLabel = rssSubSc(i).categories(0).label
Else
cateID = "NoID"
cateLabel = "カテゴリ無"
End If
' カテゴリは複数取れるため、リストに重複して同じカテゴリが表示されないようチェックしています。
cateFlg = True
If 0 < i Then
' 2つ目以降はカテゴリが重複していないかをチェックする。
For x = 0 To cateList.Length - 1
If cateList(x).cID = cateID Then
' 重複している
cateFlg = False
End If
Next
End If
' 重複カテゴリがなければ登録する。
If cateFlg = True Then
ReDim Preserve cateList(cateIdx)
cateList(cateIdx).cName = cateLabel
cateList(cateIdx).cID = cateID
cateIdx = cateIdx + 1
End If
' Feed処理
ReDim Preserve feedList(i)
feedList(i).cName = cateLabel
feedList(i).fName = rssSubSc(i).title
feedList(i).fID = rssSubSc(i).id
Next
' カテゴリリストとフィードリストへセットする。
' カテゴリ
lstCate.Items.Clear()
For i = 0 To cateList.Length - 1
lstCate.Items.Add(cateList(i).cName)
Next
' フィード
lstFeed.Items.Clear()
For i = 0 To feedList.Length - 1
lstFeed.Items.Add("【" & feedList(i).cName & "】" & feedList(i).fName)
Next
次回は実際に記事を取得して表示します。