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.)