로그인 토큰 & 사용자 / 카드 API

로그인 토큰 & 사용자 / 카드 API

이 섹션에서는 Airfob Portal API를 통해 사용자 로그인과 관리하는 방법을 설명합니다.

 

divider.png


시작하기 전에

에어팝 포탈 API를 사용하려면 사전에 에어팝 포탈 계정과 사이트를 생성해야합니다.

포탈 사이트 가입 및 생성 방법에 대한 자세한 내용은 아래 링크를 참조하십시오.

 

divider.png


포탈 로그인

시스템은 로그인 후 '토큰 값'을 가져 와서 다음 API 요청과 함께 Authroization 헤더에서 전달자로 사용해야합니다.

각 토큰의 유효 기간은 1시간입니다. 만료되면 새 토큰을 얻고 추가 API 요청을 위해 전달자 토큰을 새 토큰으로 변경해야합니다.

 

divider.png


API 기반 URL

api.mc.mocainc.com

 

divider.png

 

로그인 / 토큰 요청

URL: /login
방법: POST
요청

필수 타입 비고
email true STRING 포탈 이메일 계정 ID
password true STRING 비밀번호

응답
필수 타입 비고
email true STRING 포탈 이메일 계정 ID
accountType true STRING 계정 타입
accessToken true STRING 토큰 데이터 (1시간 유효)
name true STRING 계정명
accountStatus true STRING 계정 상태

예제
POST - /login
Request:
{"email": "api@mocainc.com", "password": "moca1!system"}

Response:
{"status":200,"message":"success",
 "record":{
     "email":"api.mocainc.com",
     "accountType":"sitemanager",
     "accessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhYyI6InNpdGVtYW5hZ2VyIiwiZW0iOiJjaGFybGVzQHN1cHJlbWEuY28ua3IiLCJleHAiOjE1Njk4MDYxNTYsImlhdCI6MTU2OTgwMjU1Nn0.1QR22Y41kEoHwwWbkrq5BJwcfg4OyWszkSgLIUT18Zw",
     "name":"TestUser",
     "accountStatus":"ACTIVATED"
     }
}

 

divider.png

 

사용자 & 카드 생성

사용자와 카드 생성은 동시에 실행 가능합니다.
  카드 타입은 사이트의 카드 타입에 따라 자동으로 할당됩니다.
  만약 사이트가 레귤러를 사용하도록 설정되어 있으면 레귤러 카드가 발급됩니다.
  만약 사이트가 다이나믹을 사용하도록 설정되어 있으면 다이나믹 카드가 발급됩니다. 에어팝 서비스 설정된 사이트에도 동일하게 적용됩니다.

URL: /user/card
방법: POST
요청
필수 타입 비고
siteid true STRING 사이트 고유 ID
user.userKey true STRING 사용자 ID
user.email true STRING 이메일 주소 (*휴대폰 번호 사용으로 설정되어 있으면 필수 아님)
user.phone true STRING 휴대폰 번호 (예시 +821022223333(국가 코드+휴대폰 번호) / *이메일 사용으로 설정되어 있으면 필수 아님)
user.meta   STRING JSON 스트링.
프로필 데이터. (필드 키: 필드 값)
user.portraitData   STRING 이미지 바이너리 데이터(JPG, JPEG, PNG) Base64 인코딩
user.feedType   STRING 피드 타입 (이메일 EMAIL 혹은 휴대폰 번호 PHONE(문자 메시지))
card.number true STRING 모바일 카드 ID (일반 GENERAL은 영숫자 부호 사용, 아스키 코드 ASCII는 알파뉴메릭 코드 사용)
card.StartDate true LONG 시작 시간 타임스탬프 (UTC)(*레귤러 카드 타입에는 필수 아님)
card.endDate true LONG 종료 시간 타임스탬프 (UTC)(*레귤러 카드 타입에는 필수 아님)

응답
필수 타입 비고
userid true STRING 사용자 고유 ID
userKey true STRING 사용자 ID
email true STRING 이메일 주소
phone true STRING 휴대폰 번호
meta true STRING JSON 스트링.
프로필 데이터. (필드 키: 필드 값)
feedType true STRING 피드 타입 (이메일 EMAIL 혹은 휴대폰 번호 PHONE(문자 메시지))
portrait   STRING 사용자 프로필 이미지 링크
card.id true STRING 카드 고유 ID
card.number true STRING 카드 ID
card.status true STRING 카드 상태: 비활성화 INACTIVE, 활성화 ACTIVATED, 정지 PAUSED, 만료 EXPIRED
card.cardType true STRING 레귤러 REGULAR 혹은 다이나믹 DYNAMIC
card.format true STRING 카드 포맷
card.cardTypeDesc true STRING 카드 포맷 설명
card.StartDate   LONG 카드 시작 시간 타임스탬프 (UTC)
card.endDate   LONG 카드 종료 시간 타임스탬프 (UTC)

예제
POST - /user/card
Request:
{"siteId": "0",
"user": {
"userKey": "1",
"email": "moca@mocainc.com",
"phone":"+821022223333",
"meta":"{\"name\":\"모카\",\"department\":\"모바일\",\"title\":\"팀원\"}",
"portraitData":"BASE64ENCODED-BINARY",
"feedType": "EMAIL"
},
"card": {
"number":"8352800",
"startDate":1587778190617,
"endDate":1587778250617
}
}
Response:
{"status":200,"message":"success",
"record": {
"userId":"3",
"userKey":"1",
"email":"moca@mocainc.com",
"phone":"+821022223333",
"meta":"{\"name\":\"모카\",\"department\":\"모바일\",\"title\":\"팀원\"}",
"portrait":"https://IMG-URL",
"feedType":"EMAIL",
"card":{
"id":"43548",
"number":"8352800",
"status":"INACTIVE",
"cardType":"DYNAMIC",
"format":"GENERAL",
"cardTypeDesc":"GENERAL",
"startDate":1587778190617,
"endDate":1587778250617}
}
}
}

 

 

divider.png

 

사용자 & 카드 검색

URL: /users/search
방법: POST
요청
필수 타입 비고
siteid true STRING 사이트 고유 ID
q   STRING 검색 키워드 (기본: 전체 데이터)
page   INT 불러올 페이지 (기본: 0)
size   INT 불러올 데이터 수 (기본: 15)
order   STRING 오름차순(asc) 혹은 내림차순(desc) (기본: asc)

응답
필수 타입 비고
userid true STRING 사용자 고유 ID
userKey true STRING 사용자 ID
email true STRING 이메일 주소
phone true STRING 휴대폰 번호
meta true STRING JSON 스트링.
프로필 데이터. (필드 키: 필드 값)
feedType true STRING 피드 타입 (이메일 EMAIL 혹은 휴대폰 번호 PHONE(문자 메시지))
portrait   STRING 사용자 프로필 이미지 링크
card.id true STRING 카드 고유 ID
card.number true STRING 카드 ID
card.status true STRING 카드 상태: 비활성화 INACTIVE, 활성화 ACTIVATED, 정지 PAUSED, 만료 EXPIRED
card.cardType true STRING 레귤러 REGULAR 혹은 다이나믹 DYNAMIC
card.format true STRING 카드 포맷
card.cardTypeDesc true STRING 카드 포맷 설명
card.StartDate   LONG 카드 시작 시간 타임스탬프 (UTC)
card.endDate   LONG 카드 종료 시간 타임스탬프 (UTC)

예제
POST - /users/search
Request:
{"siteId": "0"}
Response:
{"status":200,"message":"success","total":"1",
 "records":[
     {"userId":"3",
      "userKey":"1",
      "email":"moca@mocainc.com",
      "phone":"+821022223333",
      "meta":"{\"name\":\"모카\",\"department\":\"모바일\",\"title\":\"팀원\"}",
      "portrait":"https://IMG-URL",
      "feedType":"EMAIL",
      "card":{
          "id":"43548",
          "number":"8352800",
          "status":"INACTIVE",
          "cardType":"DYNAMIC",
          "format":"GENERAL",
          "cardTypeDesc":"GENERAL",
          "startDate":1587778190617,
          "endDate":1587778250617}
          }
      ]
}

 

 

divider.png

 

사용자 삭제

URL: /users/delete
방법: POST
요청
- 목록
필수 타입 비고
userid true STRING 사용자 고유 인덱스 ID 

응답
필수 타입 비고
status true INT 각 사용자 삭제 상태
message true STRING 각 사용자 삭제 메시지

예제
POST - /users/delete
Request:
[{"userId": "303"},
 {"userId": "304"}
]
Response:
{"status":207,"message":"Multi-Status",
 "total":"2","success":"2","failure":"0",
 "records":[
     {"status":200,"message":"success"},
     {"status":200,"message":"success"}
     ]
}

 

 

divider.png

 

카드 삭제

카드를 삭제하려면 상태 값이 'FORCE_DELETE'여야합니다.

URL: /cards
방법: PUT
요청
- 목록
필수 타입 비고
cardid true STRING 카드 고유 인덱스 ID 
status true STRING FORCE_DELETE

응답
필수 타입 비고
status true INT 각 카드 삭제 상태 STATUS
message true STRING 각 카드 삭제 메시지 MESSAGE
record_status true STRING 삭제 후 변경된 상태 값

예제
PUT - /cards
Request:
[{"cardId": "202"
  "status": "FORCE_DELETE"},
 {"cardId": "203",
  "status": "FORCE_DELETE"}
]
Response:
{"status":207,"message":"Multi-Status",
 "total":"2","success":"2","failure":"0",
 "records":[
     {"status":200,"message":"success",
      "record": {"status": "DELETE"}},
     {"status":200,"message":"success",
      "record": {"status": "DELETE"}}
     ]
}

 

 

divider.png

 

카드 재전송

재전송은 다운로드 링크를 다시 전송하기위한 것입니다.
따라서 카드가 이미 활성화 된 상태에서는 처리 할 수 없습니다.

URL: /card/send
방법: POST
요청
필수 타입 비고
siteid true STRING 사이트 ID
number false STRING 모바일 카드 ID(*하기 cardid가 포함되지 않은 경우 필수)
cardid false STRING 카드 고유 ID(*상위 number가 포함되지 않은 경우 필수)

응답
- 없음

예제
POST - /card/send
Request:
{"siteId": "0", "number": "43548"}

Response:
{"status":200,"message":"success"}

 

 

divider.png

 

카드 재발급

재발급은 동일한 모바일 카드 데이터 재전송을 하기 위한 것입니다.
따라서 사용자와 카드 데이터를 수정할 수 없습니다.

URL: /user/card
방법: PUT
요청
필수 타입 비고
siteid true STRING 사이트 고유 ID
userid true STRING 사용자 고유 ID
user.userKey   STRING 사용자 ID
user.email   STRING 이메일 주소
user.phone   STRING 휴대폰 번호
user.meta   STRING JSON 스트링.
프로필 데이터. (필드 키: 필드 값)
user.portraiteData   STRING 피드 타입 (이메일 EMAIL 혹은 휴대폰 번호 PHONE(문자 메시지))
user.feedType   STRING 이메일 혹은 휴대폰 번호
card.StartDate   LONG 카드 시작 시간 타임스탬프 (UTC)
card.endDate   LONG 카드 종료 시간 타임스탬프 (UTC)

응답
필수 타입 비고
siteid true STRING 사이트 고유 ID
userid true STRING 사용자 고유 ID
userKey true STRING 사용자 ID
email true STRING 이메일 주소
phone true STRING 휴대폰 번호
meta true STRING JSON 스트링.
프로필 데이터. (필드 키: 필드 값)
feedType true STRING 피드 타입 (이메일 EMAIL 혹은 휴대폰 번호 PHONE(문자 메시지))
portrait   STRING 사용자 프로필 이미지 링크
card.id true STRING 카드 고유 ID
card.number true STRING 카드 ID
card.status true STRING 카드 상태: 비활성화 INACTIVE, 활성화 ACTIVATED, 정지 PAUSED, 만료 EXPIRED
card.cardType true STRING 레귤러 REGULAR 혹은 다이나믹 DYNAMIC
card.format true STRING 카드 포맷
card.cardTypeDesc true STRING 카드 포맷 설명
card.StartDate   LONG 카드 시작 시간 타임스탬프 (UTC)
card.endDate   LONG 카드 종료 시간 타임스탬프 (UTC)

예제
PUT - /user/card
Request:
{"siteId": "0",
 "userId" : "3",
 "card": {
      "startDate":1587778190617,
      "endDate":1587778250617}
      }
}
Response:
{"status":200,"message":"success",
 "record": {
      "userId":"3",
      "userKey":"1",
      "email":"moca@mocainc.com",
      "phone":"+821022223333",
      "meta":"{\"name\":\"모카\",\"department\":\"모바일\",\"title\":\"팀원\"}",
      "portrait":"https://IMG-URL",
      "feedType":"EMAIL",
      "card":{
          "id":"43548",
          "number":"8352800",
          "status":"INACTIVE",
          "cardType":"DYNAMIC",
          "format":"GENERAL",
          "cardTypeDesc":"GENERAL",
          "startDate":1587778190617,
          "endDate":1587778250617}
          }
      }
}
    • Related Articles

    • 사용자 (사용자 및 모바일 카드 보기 / 추가하기)

      사용자 메뉴는 포탈의 사이트에 처음 접속했을 때, 확인할 수 있는 화면입니다. 해당 사이트에 등록된 모든 사용자 정보와 상태를 목록으로 보실 수 있습니다. *사용자 : 공간에 출입하기 위해 모바일 카드를 사용할 직원, 방문객, 멤버 등을 말합니다. 사용자 메뉴의 기능 요약 신규 사용자 추가 사용자 정보 및 모바일 카드 상태 변경 사용자 그룹 생성 및 분류 사용자의 출입 권한 지정 및 변경 사용자 목록 보기 그룹 : 소속된 사용자 그룹 명 ...
    • 사용자 템플릿

      설정 메뉴에서는 에어팝 서비스 사용성과 보안을 위한 모든 사항을 직접 변경하고 제어할 수 있습니다. 설정 > 사용자 템플릿 메뉴에서는 사용자를 추가할 때, 입력해야 하는 항목들을 추가할 수 있습니다. 내용은 사용자 추가 팝업 화면에 반영됩니다. 사용자 템플릿 목록 내용 보기 사용자 정보 : 사용자를 추가할 때 입력해야 하는 사용자의 정보 항목입니다. 필수 : 필수로 입력해야 하는 정보라면, 토글을 초록색으로 변경하여 활성화 시켜주세요. 아이디는 ...
    • 카드 템플릿

      설정 메뉴에서는 에어팝 서비스 사용성과 보안을 위한 모든 사항을 직접 변경하고 제어할 수 있습니다. 설정 > 카드 템플릿 메뉴에서는 모바일 카드 디자인을 자유롭게 추가하거나 수정할 수 있습니다. 카드 템플릿 생성하기 기본 디자인의 템플릿 마지막에 + 표시가 있는 흰색의 빈 카드를 클릭하여, 새로운 디자인을 자유롭게 생성하세요. 1. 디폴트 카드 팝업 화면 오른쪽 상단의 디폴트 카드 토글을 활성화하면, 해당 디자인을 기본 디자인으로 지정할 수 ...
    • 사용자 메뉴 기능 (전체)

      사용자 메뉴는 포탈의 사이트에 처음 접속했을 때, 확인할 수 있는 화면입니다. 해당 사이트에 등록된 모든 사용자 정보와 상태를 목록으로 보실 수 있습니다. *사용자 : 공간에 출입하기 위해 모바일 카드를 사용할 직원, 방문객, 멤버 등을 말합니다. 사용자 메뉴의 기능 요약 신규 사용자 추가 사용자 정보 및 모바일 카드 상태 변경 사용자 그룹 생성 및 분류 사용자의 출입 권한 지정 및 변경 저장된 사용자 목록에서 다룰 수 있는 모든 기능을 ...
    • 사용자 이미지 일괄 등록

      사용자 정보에 사용자 이미지를 등록하세요. 사용자의 프로필 사진이 포함된 모바일 카드를 디자인할 수 있습니다. 사용자 이미지는 사용자를 개별 추가할 때 등록하거나, 다수의 사용자에게 일괄로 반영할 수도 있습니다. 아래에서는 다수의 사용자 이미지를 일괄 등록하는 방법을 확인하실 수 있습니다. 이미지 불러오기 사용자 이미지를 등록할 때는 이미지 파일의 파일 명과 저장 형식을 반드시 확인하세요. 이미지 파일의 이름을 반드시 사용자 아이디.확장자로 ...