PATCH /ai/influence/mypage
마이페이지 데이터 수정 (프로필 이미지·이름·전화번호·국가번호·이메일)
마이페이지 데이터 수정
프로필 이미지, 이름, 전화번호(국가번호 포함), 이메일을 수정합니다. 한국·해외 크리에이터 모두 같은 API를 씁니다.
HTTP 요청
PATCH /ai/influence/mypage
Authorization: Bearer {access_token}
Content-Type: multipart/form-dataPOST /ai/influence/mypage도 같은 요청 형식이고 동작도 똑같습니다. 크리에이터 앱 마이페이지는 PATCH를 사용합니다.
Request Parts
| 파트 | 타입 | 필수 | 설명 |
|---|---|---|---|
file | file | 아니오 | 프로필 이미지 |
data | application/json | 예 | 수정할 데이터 JSON(MyPageUpdateRequestDto) |
data 필드
모든 필드는 선택입니다. 보내지 않은(null) 필드는 바꾸지 않습니다.
| 필드 | 타입 | 설명 |
|---|---|---|
name | string | 이름 |
tel | string | 전화번호. 숫자 외 문자(하이픈·공백)는 제거하고 저장 |
telDialCode | string | 전화 국가번호. +82, +81, +1 형식(82처럼 보내도 +82로 저장) |
email | string | 이메일 |
전화번호·국가번호 변경 규칙
tel이 있을 때만 전화 변경을 검사합니다. telDialCode만 단독으로 보내면 무시됩니다.
telDialCode를 보내지 않으면 기존에 저장된 국가번호를 사용합니다.tel과 국가번호가 둘 다 기존 값과 같으면 아무것도 바꾸지 않습니다.- 둘 중 하나라도 다르면 변경으로 처리합니다. 번호는 그대로 두고 국가번호만 바꾸는 것도 가능합니다. 이때
tel은 기존 번호를 그대로 보내면 됩니다. - 사용할 국가번호가 없으면(요청에도 없고 저장값도 없음)
CONTACT_VERIFICATION_TARGET_REQUIRED를 반환합니다.
| 국가번호 | 처리 |
|---|---|
+82 | 먼저 연락처 인증의 문자 인증을 마쳐야 합니다. 인증된 번호와 다르면 CONTACT_VERIFICATION_REQUIRED |
+82 외 (해외) | 문자 인증 없이 바로 저장합니다. 저장 시 전화 인증 여부는 미인증으로 초기화됩니다 |
🔴 해외 크리에이터가 번호를 바꿀 때는 반드시 회원이 고른 국가번호를
telDialCode로 보내세요. 화면 언어 기본값(예: 영어 화면에서+82)을 보내면 한국 번호로 판단해 문자 인증을 요구하고, 해외 번호는 인증을 통과할 수 없어 저장이 실패합니다. 현재 저장된 국가번호는 마이페이지 조회의telDialCode로 확인할 수 있습니다.
이메일 변경 규칙
기존 이메일과 다르면 먼저 연락처 인증의 이메일 인증을 마쳐야 합니다. 인증하지 않은 이메일로 저장하면 CONTACT_VERIFICATION_REQUIRED를 반환합니다. 한국·해외 모두 같습니다.
data JSON 예시
해외 크리에이터 전화번호 변경
{
"tel": "9012345678",
"telDialCode": "+81"
}이름·이메일 변경 (이메일 인증 완료 후)
{
"name": "홍길동",
"email": "user@example.com"
}요청 예시 (curl)
curl -X PATCH "https://{host}/ai/influence/mypage" \
-H "Authorization: Bearer {access_token}" \
-F 'data={"tel":"9012345678","telDialCode":"+81"};type=application/json' \
-F 'file=@profile.png'응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "마이페이지 데이터 저장 완료",
"data": null
}응답에 수정된 프로필이 담기지 않습니다. 최신 값이 필요하면 마이페이지 조회를 다시 호출하세요.
에러 응답
에러도 HTTP 200으로 내려옵니다. 실제 상태는 body의 status/code로 판단하세요.
| status | code | 상황 |
|---|---|---|
| 400 | CONTACT_VERIFICATION_TARGET_REQUIRED | 전화 변경인데 국가번호가 없음("전화 국가번호가 필요합니다.") 또는 +82 변경인데 번호가 비어 있음 |
| 400 | CONTACT_VERIFICATION_INVALID_EMAIL_FORMAT | 이메일 형식 오류 |
| 403 | CONTACT_VERIFICATION_REQUIRED | +82 번호 또는 새 이메일을 인증 없이 저장. data.channel, data.maskedContact로 어떤 채널인지 알려준다 |
| 404 | INVALID_INFLUENCE_USER | 인플루언서로 등록되지 않은 회원 |
CONTACT_VERIFICATION_REQUIRED 응답 예시:
{
"status": 403,
"code": "CONTACT_VERIFICATION_REQUIRED",
"message": "전화번호 인증이 필요합니다.",
"data": {
"channel": "SMS",
"maskedContact": "010****5678"
}
}