Qiita API로 자신의 기사 LGTM과 View를 얻으십시오.
개요
Qiita API에 대한 메모.
Qiita API v2 문서 - Qiita:Developer 를 보면 모두 알겠지만, 자신에게 필요한 곳만 메모하고 있습니다.
이 기사에서는 QiitaAPI의 다음을 볼 수 있습니다.
API 이용 제한
인증 사용자
1시간에 1000회
인증 없음
1시간에 60회
Qiita API v2 사용법
LGTM 취득
문서
LTGM 취득 API은 다음과 같습니다.
GET /api/v2/items/:item_id/likes HTTP/1.1
실천
이 기사의 LGTM을 걸립니다. Swift Combine 첫 걸음 - Qiita
기사 URL은 https://qiita.com/Sho-heikun/items/cc28fc8a41b9932ecfb1이며, 후행 ID는 item_id입니다.
따라서 URL은 다음과 같습니다.
https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1/likes
여기를 브라우저 URL에 붙여 넣으면 결과를 볼 수 있습니다.
LGTM의 누른 시간만 표시
응답의 정의는 다음과 같으며 사용자의 데이터를 포함합니다.
HTTP/1.1 200
Content-Type: application/json
[
{
"created_at": "2000-01-01T00:00:00+00:00",
"user": {
"description": "Hello, world.",
"facebook_id": "qiita",
"followees_count": 100,
"followers_count": 200,
"github_login_name": "qiitan",
"id": "qiita",
"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"
}
}
]
이번에는 user의 정보는 불필요하므로 jq로 filter합니다.
$ curl -s 'https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1/likes' | jq -r ".[].created_at"
2020-10-01T16:56:51+09:00
2020-10-01T02:33:46+09:00
2020-10-01T02:30:21+09:00
2020-10-01T00:43:09+09:00
2020-10-01T00:09:44+09:00
2020-09-30T12:54:58+09:00
2020-09-30T10:28:42+09:00
2020-09-30T09:15:20+09:00
2020-09-29T18:29:32+09:00
2020-09-29T17:59:22+09:00
2020-09-29T17:10:01+09:00
2020-09-29T16:10:12+09:00
2020-09-29T15:42:24+09:00
2020-09-29T14:03:53+09:00
2020-09-29T11:34:36+09:00
2020-09-29T10:42:48+09:00
2020-09-29T09:25:19+09:00
2020-09-28T23:52:41+09:00
2020-09-28T23:41:49+09:00
2020-09-28T23:35:23+09:00
무사히 취득할 수 있었습니다만, 실은 이쪽은 20건 밖에 표시되고 있지 않습니다.
per_page를 지정하면 더 많은 수를 얻을 수 있습니다.
주의점으로서, per_page는 100이 최대이므로, 100이상인 경우는 page로 조정합니다.
페이지의 초기값은 1, 페이지의 최대값은 100으로 설정됩니다. 또한, per_page의 초기값은 20, per_page의 최대값은 100으로 설정된다.
[페이지 네이션]에서( htps : // 코 m/아피/v2/도 cs#%에3%83%9에%에3%83%BC%에3%82%B8%에3%83%8D%에3%83%BC%에3 %82%B7%에3%83%아7%에3%83%B3 )
https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1/likes?per_page=100
View 수 얻기
문서
View 수를 얻을 수 있는 것은 기사 취득 API
GET /api/v2/items/:item_id HTTP/1.1
실천
방금 LGTM의 url을 조금 바꾸는 것입니다.
https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1
그러나 사용자 인증을 하지 않으면 View 수를 나타내는 page_views_count가 null가 됩니다.
액세스 토큰 발급 방법
액세스 토큰을 발행하고 인증 사용자로 API 액세스합니다.
사용자 관리 화면에서 발급이 가능합니다.
하단의 "새로 토큰 발행"을 누르십시오.

LGTM 취득
문서
LTGM 취득 API은 다음과 같습니다.
GET /api/v2/items/:item_id/likes HTTP/1.1
실천
이 기사의 LGTM을 걸립니다. Swift Combine 첫 걸음 - Qiita
기사 URL은
https://qiita.com/Sho-heikun/items/cc28fc8a41b9932ecfb1이며, 후행 ID는 item_id입니다.따라서 URL은 다음과 같습니다.
https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1/likes
여기를 브라우저 URL에 붙여 넣으면 결과를 볼 수 있습니다.
LGTM의 누른 시간만 표시
응답의 정의는 다음과 같으며 사용자의 데이터를 포함합니다.
HTTP/1.1 200
Content-Type: application/json
[
{
"created_at": "2000-01-01T00:00:00+00:00",
"user": {
"description": "Hello, world.",
"facebook_id": "qiita",
"followees_count": 100,
"followers_count": 200,
"github_login_name": "qiitan",
"id": "qiita",
"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"
}
}
]
이번에는 user의 정보는 불필요하므로 jq로 filter합니다.
$ curl -s 'https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1/likes' | jq -r ".[].created_at"
2020-10-01T16:56:51+09:00
2020-10-01T02:33:46+09:00
2020-10-01T02:30:21+09:00
2020-10-01T00:43:09+09:00
2020-10-01T00:09:44+09:00
2020-09-30T12:54:58+09:00
2020-09-30T10:28:42+09:00
2020-09-30T09:15:20+09:00
2020-09-29T18:29:32+09:00
2020-09-29T17:59:22+09:00
2020-09-29T17:10:01+09:00
2020-09-29T16:10:12+09:00
2020-09-29T15:42:24+09:00
2020-09-29T14:03:53+09:00
2020-09-29T11:34:36+09:00
2020-09-29T10:42:48+09:00
2020-09-29T09:25:19+09:00
2020-09-28T23:52:41+09:00
2020-09-28T23:41:49+09:00
2020-09-28T23:35:23+09:00
무사히 취득할 수 있었습니다만, 실은 이쪽은 20건 밖에 표시되고 있지 않습니다.
per_page를 지정하면 더 많은 수를 얻을 수 있습니다.
주의점으로서, per_page는 100이 최대이므로, 100이상인 경우는 page로 조정합니다.
페이지의 초기값은 1, 페이지의 최대값은 100으로 설정됩니다. 또한, per_page의 초기값은 20, per_page의 최대값은 100으로 설정된다.
[페이지 네이션]에서( htps : // 코 m/아피/v2/도 cs#%에3%83%9에%에3%83%BC%에3%82%B8%에3%83%8D%에3%83%BC%에3 %82%B7%에3%83%아7%에3%83%B3 )
https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1/likes?per_page=100
View 수 얻기
문서
View 수를 얻을 수 있는 것은 기사 취득 API
GET /api/v2/items/:item_id HTTP/1.1
실천
방금 LGTM의 url을 조금 바꾸는 것입니다.
https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1
그러나 사용자 인증을 하지 않으면 View 수를 나타내는
page_views_count가 null가 됩니다.액세스 토큰 발급 방법
액세스 토큰을 발행하고 인증 사용자로 API 액세스합니다.
사용자 관리 화면에서 발급이 가능합니다.
하단의 "새로 토큰 발행"을 누르십시오.

액세스 토큰으로 API 구현
curl -sH 'Authorization: Bearer 【アクセストークンを入れる】' https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1
기사 보기 가져오기
이런 식으로 기사의 View 수와 LGTM 수를 얻을 수 있습니다.
curl -sH 'Authorization: Bearer 【アクセストークンを入れる】' https://qiita.com/api/v2/items/cc28fc8a41b9932ecfb1 | jq ".page_views_count, .likes_count"
내 모든 기사의 조회수 얻기
결국 다음 코드가되었습니다.
curl -sH 'Authorization: Bearer 【アクセストークンを入れる】' \
"https://qiita.com//api/v2/authenticated_user/items?page=1&per_page=3" \
| jq -r ".[].id" \
| xargs -P 3 -I {id} curl -sH 'Authorization: Bearer 【アクセストークンを入れる】' https://qiita.com/api/v2/items/{id} \
| jq '"\(.title), VIEW: \(.page_views_count), LGTM: \(.likes_count)"'
내 기사 검색 API 의
page_views_count 는 있습니다만, null 입니다.그래서, 하나 하나의 id를 입력에 방금전의 기사 취득 API로 View수를 취득합니다.
위를 두드리면 다음과 같은 결과가 됩니다.
"Swift enum型を復習する, VIEW: 115, LGTM: 3"
"Swift Combine初めの1歩, VIEW: 1198, LGTM: 28"
"iOSDC 2020 1日目に参加しました。, VIEW: 196, LGTM: 5"
요약
좋은 Qiita 생활!
참고 기사
Reference
이 문제에 관하여(Qiita API로 자신의 기사 LGTM과 View를 얻으십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Sho-heikun/items/6d5b938d1ea4adb89a08텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)