Skip to content

Instantly share code, notes, and snippets.

@ziponia
Last active December 17, 2021 13:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ziponia/cdce1ebd88f979b2a6f3f53416b56a77 to your computer and use it in GitHub Desktop.
Save ziponia/cdce1ebd88f979b2a6f3f53416b56a77 to your computer and use it in GitHub Desktop.
/**
* https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info
*/
export type DateTime = string
export type Gender = 'female' | 'male'
export type AgeRange =
| '1-9'
| '10-14'
| '15-19'
| '20-29'
| '30-39'
| '40-49'
| '50-59'
| '60-69'
| '70-79'
| '80-89'
| '90-'
export class KakaoUser {
id: number
has_signed_up?: boolean
connected_at?: DateTime
synched_at?: DateTime
properties?: KakaoUserProperties
kakao_account?: KakaoUserAccount
}
export class KakaoUserProperties {
id?: string
status?: string
registered_at?: DateTime
msg_blocked?: boolean
nickname?: string
profile_image?: string
thumbnail_image?: string
}
export class KakaoUserAccount {
profile_needs_agreement?: boolean
profile_nickname_needs_agreement?: boolean
profile_image_needs_agreement?: boolean
profile?: KakaoUserAccountProfile
name_needs_agreement?: boolean
name?: string
email_needs_agreement?: boolean
is_email_valid?: boolean
is_email_verified?: boolean
email?: string
age_range_needs_agreement?: boolean
age_range?: AgeRange
birthyear_needs_agreement?: boolean
birthyear?: string
birthday_needs_agreement?: boolean
birthday?: string
birthday_type?: string
gender_needs_agreement?: boolean
gender?: Gender
phone_number_needs_agreement?: boolean
phone_number?: string
ci_needs_agreement?: boolean
ci?: string
ci_authenticated_at?: DateTime
}
export class KakaoUserAccountProfile {
nickname?: string
thumbnail_image_url?: string
profile_image_url?: string
is_default_image?: boolean
}
export class KakaoService {
private static USER_INFO_URI = "https://kapi.kakao.com/v2/user/me";
/**
* https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info
*/
userinfo(accessToken: string) {
return axios.get<KakaoUser>(KakaoService.USER_INFO_URI, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
Authorization: `Bearer ${accessToken}`,
},
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment