인증

이 단계에서는 귀하가 Bonder의 파트너이고 지원 팀에서 사용자 이름, 비밀번호 및 API 고객 이름을 제공했다고 가정합니다.
  • 명령 auth
  • 요청 POST
curl -k -X POST \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d '{
  "username" : "USERNAME",
  "password" : "PASSWORD",
  "client" : "API_CLIENT_NAME",
  "rpt" : "10000"
}' \
"https:// {{API_URL}} /auth" \
인증 파라미터
파라미터
유형
설명
username
string
API 사용자 이름
password
string
API 비밀번호
client
string
API 고객 이름
rpt
integer
token별 요청 수(RPT - Requests Per Token) rpt<1000, 100000>
성공 HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {
    "token" : "access_token",
    "expire" : "1601424445"
  }
}
답변
파라미터
유형
설명
token
string
내 token
expire
integer
token 타임 스탬프 만료 날짜 expire=time()+3600
expirerpt 변수가 변하고 있습니다. 타겟 값에 먼저 도달하는 것이 token을 비활성화합니다.
실패 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [오류-코드],
  "result" : {}
}
오류-코드
오류
설명
INVALID_CREDENTIALS_ERROR
유효하지 않은 비밀번호, 유효하지 않은 이메일 또는 계정이 삭제되었거나 존재하지 않습니다
SERVER_OFFLINE_ERROR
보류된 유지 관리 작업으로 인해 서버가 오프라인 상태입니다.
가능한 소프트웨어 업데이트
  • 추천 사항: 45~60분 이후에 다시 시도
AUTH_SERVICE_OFFLINE_ERROR
모든 사용자가 현재 인증 서비스를 사용할 수 없습니다.
가능한 소프트웨어 업데이트
  • 추천 사항: 45~60분 이후에 다시 시도
API_SERVICE_OFFLINE_ERROR
API 서비스를 현재 사용할 수 없습니다.
가능한 소프트웨어 업데이트
  • 추천 사항: 45~60분 이후에 다시 시도
ACCOUNT_INACTIVE_ERROR
API 계정이 중단되었거나 삭제되었습니다.
  • 추천 사항: 지원 팀 연락
INTERNAL_SERVER_ERROR
내부 서버 오류가 발생했습니다
  • 추천 사항: 다시 시도
DATABASE_ERROR
데이터베이스 연결 오류가 발생했습니다
  • 추천 사항: 다시 시도

데이터 구조

다른 명령으로 이동하기 전에 Bonder가 사용하는 데이터 구조를 설명해 드리겠습니다.

데이터 유형

데이터 유형
유형
설명
번역 가능
각 언어로 따로 저장해야 함
번역 불가
별도의 테이블에 저장되며 각 언어의 명함에 추가됨
예: email 또는 mobile 등의 번역 불가한 값을 변경했을 때 명함의 모든 언어 버전이 업데이트됩니다.

명함 모드

고객이 자연인이 아닌 전혀-무섭지-않은-치과-서비스 등의 기업일 수도 있으므로, 최상위 변수인 displayName을 생성했습니다. !empty(displayName)의 경우, 명함은 비즈니스 모드에서 여전히 작동하며, 명함 생성 시, name lastname position 변수는 생략됩니다(단, 서버는 여전히 값을 유지합니다).
명함 모드
모드
조건
비즈니스
if (!empty(displayName)) {
businessMode = TRUE
}
개인
if (empty(displayName)) {
businessMode = FALSE
}
영어 버전에서는 displayName 변수에 값이 할당되어 서버가 데이터를 유지하지만, 명함 생성 시 name lastname position이 무시됩니다. "en" : {
  "displayName" : "Non-scary-dental-services",
  "name" : "John",
  "lastname" : Kowalski",
  "position" : "CEO"
},
폴란드어 버전일 경우 휴대 기기에 Jan Kowalski (회장 직위)라는 이름으로 표시됩니다. "pl" : {
  "displayName" : "",
  "name" : "Jan",
  "lastname" : "Kowalski",
  "position" : "Prezes"
},
서버에 데이터 일부를 저장해도, 러시아어 버전은 다운로드할 수 없습니다. "ru" : {
  "displayName" : "",
  "name" : "",
  "lastname" : "Ковалский",
  "position" : "Директор"
}

변수

각 변수는 서버로 전송되기 전에 예비 검증되어야 합니다. 전송된 변수의 값이 지정된 정규식과 일치하지 않으면, 서버는 null로 변수를 지정합니다. 하지만 여전히 데이터 저장에 대해서는 success=true의 긍정적인 응답을 보냅니다.
변수
이름
유형
번역 가능
설명
name
string
이름
  • 개인 모드에서 명함 생성에 필요함
  • 비즈니스 모드에서 저장 및 무시됨
  • /^[a-zA-Z0-9]{2,25}$/
lastname
string
  • 비즈니스 모드에서 저장 및 무시됨
  • 비즈니스 모드에서 저장 및 무시됨
  • /^[a-zA-Z0-9]{32,128}$/
displayName
string
이름 표시
  • 비즈니스 모드에서 명함 생성에 필요함
  • /^[a-zA-Z0-9]{32,128}$/
company
string
회사 이름
  • /^[a-zA-Z0-9]{32,128}$/
position
string
직위
  • 비즈니스 모드에서 저장 및 무시됨
  • /^[a-zA-Z0-9]{32,128}$/
keywords
string
특정 사람 또는 회사를 가장 잘 묘사하는 키워드
  • 쉼표로 구분
  • /^[a-zA-Z0-9]{1,150}$/
thumbnail
string
사용자 사진 또는 로고가 모바일 기기에 표시됨
  • base64로 인코딩된 이미지
  • 고정 크기 300px x 300px
  • 최대 파일 크기 50KB
phoneA
string
전화 번호
  • 처음 0과 숫자가 아닌 문자는 잘림
  • 고객은 국가 코드를 제공해야 함
  • 처음에 '+'가 추가됨
  • /^[a-zA-Z0-9]{32,128}$/
phoneB
string
위와 같이
mobileA
string
휴대 전화 번호
  • 처음 0과 숫자가 아닌 문자는 잘림
  • 고객은 국가 코드를 제공해야 함
  • 처음에 '+'가 추가됨
  • /^[a-zA-Z0-9]{32,128}$/
mobileB
string
위와 같이
skypeA
string
스카이프 사용자 이름
  • /^[a-zA-Z0-9]{32,128}$/
skypeB
string
위와 같이
faxA
string
팩스 번호
  • 처음 0과 숫자가 아닌 문자는 잘림
  • 고객은 국가 코드를 제공해야 함
  • 처음에 '+'가 추가됨
  • /^[a-zA-Z0-9]{32,128}$/
faxB
string
위와 같이
emailA
string
이메일
emailB
string
위와 같이
webA
string
URL
  • /^[a-zA-Z0-9]{32,128}$/
webB
string
위와 같이
webC
string
위와 같이
addrStreet
string
주소 - 도로
  • /^[a-zA-Z0-9]{32,128}$/
addrCity
string
주소 - 시
  • /^[a-zA-Z0-9]{32,128}$/
addrState
string
주소 - 도/주
  • /^[a-zA-Z0-9]{32,128}$/
addrZip
string
주소 - 우편 번호
  • /^[a-zA-Z0-9]{32,128}$/
addrCountry
string
주소 - 국가
  • /^[a-zA-Z0-9]{32,128}$/

변수

변수
변수
유형
설명
langStatus
integer
0 = off, 1 = on
데이터를 삭제하지 않고 언어 버전 활성화/비활성화
  • default = 0
usePhoto
integer
0 = off, 1 = on
사진을 삭제하지 않고 활성화/비활성화
  • default = 1
cardStatus
integer
0 = off, 1 = on
명함을 삭제하지 않고 활성화/비활성화
  • default = 1

언어 지원

Bonder에서 사용자는 60개 이상의 언어로 명함을 생성할 수 있으며 API 사용자에게도 제공됩니다. 또한, Bonder가 지원하는 번역된 언어 코드가 있는 저장소가 있어 나만의 애플리케이션 생성 시 사용할 수 있어 편리합니다. 저희는 lang 변수를 사용하여 언어 버전을 관리합니다. 사용자는 언어 버전을 추가, 편집 및 삭제하는 데 사용할 수 있습니다.
  • 명령 repositories
  • 요청 GET
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories \
성공 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : [local, lang]
  }
}
langList
유형
설명
lang
string
ISO 639-1:2002 준수 언어 코드
local
string
현지어로 된 언어명 목록(en => English, ru => Русский)
응답 예시 서버에서는 사용 가능한 리소스 목록, 즉, local, 영어, 러시아어, 폴란드어, 중국어를 반환합니다 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "langList" : ["local", "en", "ru", "pl", "zh"]
  }
}
langList에서 값을 사용하여 필요한 리소스를 다운로드하세요. 응답은 항상 key : value 쌍의 형식으로 이루어집니다.

현지어로 된 언어명 목록 다운로드

  • 명령 repositories
  • 요청 GET
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /repositories/local" \
성공 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "pl" : "Polski",
    "en" : "English",
    "ru" : "Русский",
    ...,
    "키" : "값"
 }
}

번역된 언어명 다운로드

  • 명령 repositories
  • 요청 GET
다음 예시에 따라 위 문의 사항을 변경하세요: "https:// {{API_URL}} /repositories/ru" \
"https:// {{API_URL}} /repositories/en" \
찾는 리소스가 저장소에 없으면 지원 팀에 알려주세요. 최대한 빨리 업데이트하겠습니다. 응답을 기다릴 수 없다면, 사용 가능한 언어 코드를 다운로드하고 번역하는 것을 권장합니다.
실패 HTTP/1.1 200OK
{
  "success" : false,
  "errors" : [오류-코드],
  "result" : {}
}
오류-코드
오류
설명
INVALID_CREDENTIALS_ERROR
유효하지 않은 비밀번호 또는 이메일이거나 유효하지 않은 token
  • 추천 사항: 인증 반복
RESOURCE_NOT_FOUND_ERROR
찾는 리소스가 존재하지 않습니다
  • 추천 사항: 문의 확인
기타
인증 섹션오류-코드 보기

새 프로필 생성

  • 명령 users
  • 요청 post
curl -k -X POST \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users" \
성공 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [],
  "result" : {
    "cardId" : string,
    "cardQrc" : string,
    "cardAddr" : string (url)
  }
}
문의 결과
변수
유형
설명
cardId
string
생성된 프로필의 명함 식별자
  • 대소문자 구분
  • /^[a-zA-Z0-9]{32,128}$/
cardAddr
string
생성된 명함 주소
cardQrc
string
base64로 인코딩된 명함 주소의 QR 코드
cardId cardQrc cardAddr 변수는 서버에 로컬로 저장되며, 이는 지정된 사용자에게 할당되어야 합니다. cardId 변수는 API와의 올바른 통신에 필요합니다.
실패 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [오류-코드],
  "result" : {}
}
오류-코드
오류
설명
INVALID_CREDENTIALS_ERROR
유효하지 않은 비밀번호 또는 이메일이거나 유효하지 않은 token
  • 추천 사항: 인증 반복
PROFILE_LIMIT_REACHED_ERROR
프로필 제한에 도달했습니다
  • 추천 사항: 지원 팀에 연락하여 계정 설정 변경
기타
인증 섹션오류-코드 보기

데이터 저장

  • 고정 문의는 사용하지 않습니다. 업데이트해야 할 데이터만 전송하세요.
  • PUT 명령을 사용하여 새 프로필을 생성하세요.
  • translatable 섹션에서 lang 키를 사용하여 언어를 선택하세요.
  • 고객이 언어 버전을 지정하길 원하지 않으면, 범용을 의미하는 lang=un을 설정하세요.
  • 한 문의에 최대 5개의 언어를 수정하세요(업데이트, 추가). 5개 이상은 무시됩니다.
  • 명령 users
  • 요청 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
-d ' {
cardStatus=0이면 명함이 비활성화되며 다운로드할 수 없습니다.   "settings" : {
    "cardStatus" : "0",
    "usePhoto" : "1"
  },
  "translatable" : {
langStatus를 사용하여 언어를 활성화 및 비활성화하세요.     "pl" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Dyrektor Zarządzający"
    },
새 언어 추가 시 저희는 기본적으로 langStatus=0을 설정합니다. 사용자는 언어추가 시 langStatus=1을 지정하여 설정을 무시할 수 있습니다.     "en" : {
      "name" : "John",
      "lastname" : "Connor",
      "position" : "Managing Director",
      "displayName" : "The Great John Connor",
      "keywords" : "steel, steel pipe, tubular products"
    },
langStatus=1을 설정해도, (name!=null && lastname!=null) || displayName!=null 조건이 충족되지 않는 한 특정 언어를 다운로드할 수 없습니다.     "es" : {
      "langStatus" : "1",
      "name" : "John",
      "position" : "Director Ejecutivo"
    },
    "pt" : {
      "langStatus" : "1",
      "name" : "John",
      "lastname" : "Connor",
    },
    "ru" : {
      "langStatus" : "1",
      "name" : "",
      "lastname" : "Коннор",
    },
    "zh" : {
      "position" : "首席执行官"
    }
  },
  "non-translatable" : {
    "thumbnail" : "base64_encoded_image",
    "mobileA" : "123456789",
    "emailB" : "[email protected]"
  }
}
' \
"https:// {{API_URL}} /users/{{card_id}} \
성공 HTTP/1.1 200 OK
{
  "success": true,
  "errors" : [오류-코드],
  "result" : {}
}
success=true를 반환하더라도, 문의에 프로필 사진을 추가하면 서버에서 오류를 보고할 수 있습니다.
오류-코드
오류
설명
THUMBNAIL_REJECTED_ERROR
데이터는 저장되었으나, 전송된 이미지가 서버에서 거부되었습니다
  • 추천 사항: 이미지 생성기 확인하기
실패 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [오류-코드],
  "result" : {}
}
오류-코드
오류
설명
INVALID_CREDENTIALS_ERROR
유효하지 않은 비밀번호 또는 이메일이거나 유효하지 않은 token
  • 추천 사항: 인증 반복
CARD_ID_NOT_FOUND_ERROR
명함 cardId가 존재하지 않거나 리소스를 변경할 권한이 없습니다.
  • 추천 사항: 문의 확인
기타
인증 섹션오류-코드 보기

설정 수정

변수
파라미터
유형
설명
status
string
<enable, disable>

명함 상태 변경

  • 명령 users
  • 요청 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/cardStatus/{{status}}

사진 상태 변경

  • 명령 users
  • 요청 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/usePhoto/{{status}}

언어 상태 변경

  • 명령 users
  • 요청 put
curl -k -X PUT \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
https:// {{API_URL}} /users/{{card_id}}/langStatus/{{lang}}/{{status}}
성공 HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
실패 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [오류-코드],
  "result" : {}
}
오류-코드
오류
설명
모두
데이터 저장 섹션오류-코드 보기

데이터 다운로드

  • 명령 users
  • 요청 get
curl -k -X GET \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}" \
성공 HTTP/1.1 200 OK
{
"success": true,
"errors" : [],
"result" : {
  "translatable" : {
    "lang" : {
      "langStatus" : "1",
      "키" : "값"
    },
    "lang" : {
      "langStatus" : "0",
      "키" : "값"
    }
  },
  "non-translatable" : {
    "thumbnail" : "base64_encoded_image",
    "키" : "값"
  },
  "settings" : {
    "cardStatus" : "1",
    "usePhoto" : "1",
    "cardQrc" : "base64_encoded_image",
    "cardAddr" : "URL",
    "usePhoto" : "1"
  }

}
실패 HTTP/1.1 200 OK
{
  "success" : false,
  "errors" : [오류-코드],
  "result" : {}
}
오류-코드
오류
설명
INVALID_CREDENTIALS_ERROR
유효하지 않은 비밀번호 또는 이메일이거나 유효하지 않은 token
  • 추천 사항: 인증 반복
CARD_ID_NOT_FOUND_ERROR
명함 cardId가 존재하지 않거나 리소스를 변경할 권한이 없습니다.
  • 추천 사항: 문의 확인
기타
인증 섹션오류-코드 보기

데이터 삭제

언어 삭제

  • 명령 users
  • 요청 delete
curl -k -X DELETE \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}/{{lang}}" \

프로필 삭제

  • 명령 users
  • 요청 delete
curl -k -X DELETE \
-H "X-Auth-Key : {{access_token}}" \
-H "X-Auth-Email : {{username}}" \
-H "Content-Type : application/json" \
-H "Accept : application/json" \
"https:// {{API_URL}} /users/{{card_id}}" \
성공 HTTP/1.1 200 OK
{
  "success" : true,
  "errors" : [],
  "result" : {}
}
실패 HTTP/1.1 200 OK
{
 "success" : false,
 "errors" : [오류-코드],
 "result" : {}
}
오류-코드
오류
설명
INVALID_CREDENTIALS_ERROR
유효하지 않은 비밀번호 또는 이메일이거나 유효하지 않은 token
  • 추천 사항: 인증 반복
CARD_ID_NOT_FOUND_ERROR
명함 cardId가 존재하지 않거나 리소스를 변경할 권한이 없습니다.
  • 추천 사항: 문의 확인
기타
인증 섹션오류-코드 보기