작성한 글 통계를 보다가 하나씩 보기 귀찮아서 한번 시도해 봤다.
기본 baseUrl은 https://v2cdn.velog.io/graphql
이다.
메소드는 POST
!
리스트를 조회하기 위해서는 인증 키가 필요한데, velog는 jwt를 사용하는 것 같다.
쿠키 값으로 access_token 과 refresh_token 을 보내주어야 한다.
로그인을 하고 자신의 메인 페이지에서 개발자 도구를 확인해보면 access_token, refresh_token를 확인 할 수 있다. (노출되지 않도록 주의~)
포스트맨을 사용하여 조회
v2cdn.velog.io
에 맞는 쿠키를 자동으로 세팅 해주는 것 같다.바디 데이터는 json 형태로 다음과 같이 보낸다.
간단하게 postId 와 제목 만 가져와보자.
파라미터 | 값 |
---|---|
username | velog 아이디 |
limit | 가져올 포스트 갯수(max: 100) |
cursor | 다음 페이지 조회할 경우 리스트의 마지막 postId를 적어주면 된다. |
{
"operationName":"Posts",
"variables":{
"username": "haerong22",
"limit": 10,
"cursor": ""
},
"query":"query Posts($cursor: ID, $username: String, $temp_only: Boolean, $tag: String, $limit: Int) { posts(cursor: $cursor, username: $username, temp_only: $temp_only, tag: $tag, limit: $limit) {id title}}"
}
결과는 다음과 같다.
여기서 필요한 것은 postId 이다.
포스트별 전체 조회수와 오늘의 조회수를 가져와 본다.
마찬가지로 쿠키에 토큰을 전송한다.
파라미터 | 값 |
---|---|
post_id | 리스트에서 조회한 postId |
{
"operationName":"GetStats",
"variables":{
"post_id": "29e6ebba-eebd-42c2-89d3-a58dc2a5cd5a"
},
"query":"query GetStats($post_id: ID!) {getStats(post_id: $post_id) {total count_by_day {count day}}}"
}
결과는 다음과 같다.
total은 전체 조회수 이고 count는 각 일자별 조회수 이다.
자바로 작성해 봤다.
jar 파일 -> 다운로드
비밀번호 1234
파라미터 | 값 |
---|---|
username | velog 아이디 |
accessToken | access_token 값 |
refreshToken | refresh_token 값 |
java -jar totalcnt-1.0.jar -u {username} -t {accessToken} -t {refreshToken}
totalcnt-1.0.jar 파일 및 Java 설치 후, 해당 경로에서 터미널 열고 알려주신 코드 입력하였는데, "username, accessToken, refreshToken is required."라는 메세지가 출력되었습니다. 혹시 이유를 아실까요...ㅠㅠ