Qiita APIを触ってみる

## Qiitaのアクセストークンの取得

- 設定から進む

[ここ](https://qiita.com/settings/tokens/new) からでも進めます。

![設定miyuki_samitani - Qiita - Google Chrome 2020-11-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/0512d68f-86a5-2008-fd89-98dd188d9212.png)

- アプリケーション > 個人用アクセストークン > 新しくトークンを発行する

![アプリケーションQiita - Google Chrome 2020-11-20 16.19.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/5d2fdc6c-dc3a-e020-e632-f3dbbc5acece.png)


- アクセストークンの発行

ここでスコープがいくつかあるかと思いますが、詳細は以下です。

```
read_qiita : Qiitaからアクセストークンに紐付いたユーザに関連したデータを読み出す
read_qiita_team : Qiita Teamからデータを読み出す
write_qiita : Qiitaにデータを書き込む
write_qiita_team : Qiita Teamにデータを書き込む
```

Qiita Teamは関係ないので省く。
また今回はデータを書き込まないのでwrite_qiitaは省きます、最小の権限にしておきます。

選択ができたら発行に進みます。

![トークン発行Qiita - Google Chrome 2020-11-20 16.20.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/21121755-fb6e-09ff-4057-afa2f666b2a8.png)


- 発行される

発行すると個人用アクセストークンにアクセストークンが発行されます。


![発行後アプリケーション無題 - ペイント 2020-11-20 16.22.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/f126e0ec-6882-b323-5867-fa10a6615a0a.png)

## APIを叩いてみる

- 自分のプロフィールを取得してみる例

アクセストークンを指定してユーザのプロフィールを取得します。
あと見ずらいのでjqを入れています。

```
curl -H 'Authorization: Bearer [アクセストークン]' 'https://qiita.com/api/v2/users/[ユーザ名]' | jq
```

```
curl -H 'Authorization: Bearer [アクセストークン]' 'https://qiita.com/api/v2/users/miyuki_samitani' | jq
==========
{
  "description": "聞いたり見たりして知らないこと知っていくやつ",
  "facebook_id": "",
  "followees_count": 5,
  "followers_count": 6,
  "github_login_name": null,
  "id": "miyuki_samitani",
  "items_count": 89,
  "linkedin_id": "",
  "location": "",
  "name": "",
  "organization": "",
  "permanent_id": 129517,
  "profile_image_url": "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/profile-images/1602510349",
  "team_only": false,
  "twitter_screen_name": "miyuki_samitani",
  "website_url": ""
}
==========
```

- 記事を取得してみる例

ブラウザからIDを見てみます。結構昔の記事....
URLのitemsの下がIDになります。

![sshの公開鍵認証について(個人的まとめ) - Qiita — Mozilla Firefox 20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/3c9b2f68-1887-3e55-1b8b-d51ddcd17900.png)

以下が記事を取得するコマンドになります。

```
curl -H 'Authorization: Bearer [アクセストークン]' 'https://qiita.com/api/v2/items/[記事のID]' | jq
```

以下が [sshの公開鍵認証について(個人的まとめ)](https://qiita.com/miyuki_samitani/items/0ae736fee026337ccdb9) の記事を取得したものになります。
`rendered_body` と `body` は長いので省略しています。
titleとかも取れるのね...

```
curl -H 'Authorization: Bearer [アクセストークン]' 'https://qiita.com/api/v2/items/2bac5ec563bb400a26ef' | jq
==========
{
  "rendered_body": "[HTML形式の本文]",
  "body": "[Markdown形式の本文]",
  "coediting": false,
  "comments_count": 0,
  "created_at": "2016-09-21T03:20:36+09:00",
  "group": null,
  "id": "0ae736fee026337ccdb9",
  "likes_count": 13,
  "private": false,
  "reactions_count": 0,
  "tags": [
    {
      "name": "SSH",
      "versions": []
    },
    {
      "name": "公開鍵認証",
      "versions": []
    }
  ],
  "title": "sshの公開鍵認証について(個人的まとめ)",
  "updated_at": "2016-09-21T14:53:26+09:00",
  "url": "https://qiita.com/miyuki_samitani/items/0ae736fee026337ccdb9",
  "user": {
    "description": "聞いたり見たりして知らないこと知っていくやつ",
    "facebook_id": "",
    "followees_count": 5,
    "followers_count": 6,
    "github_login_name": null,
    "id": "miyuki_samitani",
    "items_count": 89,
    "linkedin_id": "",
    "location": "",
    "name": "",
    "organization": "",
    "permanent_id": 129517,
    "profile_image_url": "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/profile-images/1602510349",
    "team_only": false,
    "twitter_screen_name": "miyuki_samitani",
    "website_url": ""
  },
  "page_views_count": 11534
}
==========
```

## 勉強後のイメージ

結構簡単だった...
curlでもブラウザからでも見れる。
これで記事一覧とか出来る気がするー！
あと、スコープ変えたら投稿とかも出来るしすごいね
あとすごい公式ドキュメント見やすかった

## 参考

- [Qiita API 概要](https://qiita.com/api/v2/docs)
- [Qiita API v2を利用してcurlで投稿してみた](https://qiilog.com/663d3f7bbc4da4ccf62d)
- [Qiita APIを使って記事一覧を取得する](https://qiita.com/kou_pg_0131/items/57f86a1abc332ed2185d)