本記事は、「note.com」を使って、弊社先端技術開発グループが運営する「AIグループ@グランバレイ」で、2021年7月に掲載された記事を元に一部修正を加え、再掲載したものです。
はじめに
エンジニアの強い味方である技術情報共有サービスであるQiita。私たちもさまざまな疑問や課題に対して、解決策の糸口を探るために利用しています。
しかしながら、情報が多いため探すのに一苦労します。
今回、検索を効率するために、node.jsとQiita APIを使ってQiita記事を自動でタグ検索する方法をプログラムで実現。今回ご紹介します。
実行環境
- ・Windows10 64bit
- ・node 12.18.0
- ・npm 6.14.4
プログラムの全容
最初にプログラムの全容をお見せいたします。
onst request = require('request');
const QIITA_TOKEN = 取得したアクセストークン;
const URL = 'https://qiita.com/api/v2/items?'
+ 'page=1'
+ '&per_page=20'
+ '&query=tag%3APython+OR+tag%3Anode'
+ '+likes_count%3A%3E5';
request.get({
url: URL,
headers: {
'Content-type': 'application/json',
'Authorization': 'Bearer ' + QIITA_TOKEN
},
json: true
}, function (err, req, result) {
const qiita_json = result.map(function (data) {
return { "title": data.title, "url": data.url, "tag": JSON.stringify(data.tags) };
});
console.log(qiita_json);
});
最新の投稿から、指定のタグかつLGTM数が5以上の記事を20件取得するプログラムとなっています。
Qiita APIを利用するには、事前にアクセストークンの取得が必要ですが、次項以降でトークンの取得方法から紹介していきます!
Qiita APIを利用するための前準備
Qiita APIのアクセストークン取得
アクセストークンはQiitaにユーザー登録をすると取得することができるようになります。
ユーザー登録の後、Qiitaサイトの右上のメニューから「設定」を選択します。
続いて「アプリケーション」メニューの「新しくトークンを発行する」を選択します。
今回は記事の情報を取得することができれば良いので、スコープは「read_qiita」のみを選択し「発行する」をクリックします。
これでアクセストークンを取得することができます!
** 注意 **
このアクセストークンは再び表示することができないので必ずどこかに控えておきましょう!
Qiita APIでの記事検索方法
アクセストークンの準備はできたので、続いてはQiita APIの使い方について紹介します。
Qiita APIでは「GET」「POST」「PUT」「PATCH」「DELETE」という5種類のリクエストを行うことができます。
今回使用するのは「GET」リクエストです。
他の人が投稿した内容を取得するには以下のURLへリクエストを行います。
https://qiita.com/api/v2/items?page=1&per_page=20
# page : ページ番号
# per_page : 取得記事数
これだけですと、最近投稿されたすべての記事から20件取得されます。
今回は、更に情報を付加して絞り込みを行います!
https://qiita.com/api/v2/items?page=1&per_page=20&query=tag%3APython+OR+tag%3Anode+likes_count%3A%3E5
先程のURLの後ろに「&query= ・・・」を付加すると、条件に合った記事の中から情報を取得できるようになります。
今回は、「tag」と「likes_count」という条件を付加しています。
「tag」はそのままタグのことですが、「likes_count」はLGTMの件数を指しています。
また、途中の「%3A」は「:」を、「%3E」は「>」を表しています。
これはURLエスケープのためにこのような表記にしています。
この方法により、条件を指定したURLに対しリクエストを行うことで、自分の読みたい記事を取得することができます!
GETリクエストで取得できる情報について
前項で紹介したURLに対してGETリクエストを行うと、記事1件に対し以下のような情報をJSON形式で取得することができます。
HTTP/1.1 200
Content-Type: application/json
[
{
"rendered_body": "Example
",
"body": "# Example",
"coediting": false,
"comments_count": 100,
"created_at": "2000-01-01T00:00:00+00:00",
"group": {
"created_at": "2000-01-01T00:00:00+00:00",
"id": 1,
"name": "Dev",
"private": false,
"updated_at": "2000-01-01T00:00:00+00:00",
・
・
・
"items_count": 300,
"linkedin_id": "qiita",
"location": "Tokyo, Japan",
"name": "Qiita キータ",
"organization": "Increments Inc",
"permanent_id": 1,
"profile_image_url": "https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/88/ccf90b557a406157dbb9d2d7e543dae384dbb561/large.png?1575443439",
"team_only": false,
"twitter_screen_name": "qiita",
"website_url": "https://qiita.com"
},
"page_views_count": 100
}
]
長いので省略してしまいましたが、詳細は公式ドキュメントに記載されておりますので、ご覧ください。
今回の方法を用いることで、多くの情報を取得することができます。コンソールなどに出力する場合は、以下のようにタイトルやURLなどに絞って表示させると見やすくなります。
# result : GETリクエストで取得したJSON形式の記事データ
const qiita_json = result.map(function (data) {
return { "title": JSON.stringify(data.title), "url": JSON.stringify(data.url), "tag": JSON.stringify(data.tags) };
});
console.log(qiita_json);
まとめ
node.jsとQiita APIを使って、Qiita記事を自動でタグ検索する方法の紹介でしたが、いかがでしたか?
Qiita APIを利用すれば、自分の見たい記事を効率よく探すことができてとても便利になります。
皆様も是非ともお試しください!
本記事は、弊社先端技術開発グループが運営している「note」内の「AIグループ@グランバレイ」の記事を一部修正を加え転載しております。
https://note.com/gvaiblog/n/n5cfc1b186360
※ その他の会社名、製品名は各社の登録商標または商標です。
※ 記事の内容は記事公開時点での情報です。閲覧頂いた時点では異なる可能性がございます。
キーワード
注目の記事一覧
- SAP 生成AIアシスタント/コパイロット「Joule(ジュール)」
- データパイプラインと変換ロジックを定義するノーコード/プロコードアプローチ
- 行動を喚起するチャート3選
- データウェアハウスの近代化-QlikとTalendの活用
- AIリテラシー、データリテラシーの新しい波
月別記事一覧
- 2024年10月 (1)
- 2024年8月 (1)
- 2024年7月 (2)
- 2024年6月 (1)
- 2024年4月 (1)
- 2024年2月 (1)
- 2024年1月 (1)
- 2023年9月 (1)
- 2023年8月 (2)
- 2023年7月 (1)
- 2023年6月 (1)
- 2023年5月 (2)