LoginSignup
1
0

More than 1 year has passed since last update.

TypeScriptでQiita記事のPV情報を取得してみるメモ

Last updated at Posted at 2022-11-06

Denoでの利用で勉強中メモです。

Fetch APIを使うサンプルとして前に書いた記事をベースにTypeScript版にしてみました。

今回は/items/:itemidのAPIなので記事の情報取得ですね。

const BASE_URL = `https://qiita.com/api/v2`;

const getQiita = async (url: string): Promise<string | null> => {

    const ITEM_ID = url.split(`/items/`)[1]; //ITEMIDを抽出
    const ENDPOINT = `${BASE_URL}/items/${ITEM_ID}`;

    try {
        const options = {
            headers:{
                'Authorization': `Bearer <トークン>`,
                'Content-Type': 'application/json'
            }
        }

        const jsonResponse = await fetch(ENDPOINT, options);
        const jsonData = await jsonResponse.json();
        // console.log(jsonData);
        return jsonData.page_views_count;
    } catch (error) {
        throw new Error(error);
    }
}

// const url = `https://qiita.com/n0bisuke/items/b0cf0c416aa8e46bdb1b`;
const url = `https://qiita.com/atoms50/items/69c79fe8e38487e31825`;
const pv = await getQiita(url);
console.log(pv);

PVの値は自分じゃないと取れないので注意試してみる

実行するとPVが取れます。

ただPVの値はトークン認証しているユーザー(この場合だと自分)の記事のみ見れるみたいです。

  • 自身の記事の場合

$ deno run --allow-net qiita.ts
863
  • よしだくんの記事の場合

$ deno run --allow-net qiita.ts
null

他にも他人の記事だと取れないパラメータがあるかもしれないですね。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0