API Documentation - maulufia/clovergarden GitHub Wiki

BASE URI : http://api.clovergarden.co.kr/v1


Prefix URIs

  1. ๋ณด๊ณ ์„œ - http://clovergarden.co.kr/imgs/up_file/clover/{ํŒŒ์ผ๋ช…}
  2. ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ (์ˆ˜์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ) - http://clovergarden.co.kr/imgs/up_file/member/{ํŒŒ์ผ๋ช…}

  • ๋ชจ๋“  Request๋Š” contentType="application/x-www-form-urlencoded"์ž…๋‹ˆ๋‹ค
  • ํŒŒ์ผ ์—…๋กœ๋“œ ์‹œ ์ œํ•œ ์—…๋กœ๋“œ ํฌ๊ธฐ๋Š” 10MB์ž…๋‹ˆ๋‹ค. ๋”ฐ๋กœ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š์œผ๋‹ˆ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค
  • FCM์„ ์‚ฌ์šฉํ•  ๋•Œ ์•ˆ๋“œ๋กœ์ด๋“œ๋‚˜ iOS์—์„œ ์ดˆ๊ธฐ Topic์„ news๋กœ ์ง€์ •ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
    Android ์ฐธ๊ณ  : https://firebase.google.com/docs/cloud-messaging/android/topic-messaging

Version : v1


2016/01/13 ์ˆ˜์ •

  1. ์•„์ด๋”” ์ค‘๋ณต ํ™•์ธ์— ์•„์ด๋””(์ด๋ฉ”์ผ) ํ˜•์‹ ๊ฒ€์‚ฌ๋„ ์ถ”๊ฐ€๋จ

2016/12/10 ์ˆ˜์ •

  1. ์กฐํšŒ ๊ฐ€๋Šฅํ•œ ์—ฐ๋„ ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ถ”๊ฐ€
  2. ์—ฐ๋„๋ณ„๋กœ ํ›„์› ๋‚ด์—ญ ์กฐํšŒ ์ถ”๊ฐ€
  3. ์œ„ ๋‚ด์—ญ์€ ์ด์ „์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋‚˜ ๋ฌธ์„œ์—๋งŒ ๋ฐ˜์˜์ด ์•ˆ๋˜์–ด ์žˆ์–ด ์ด์ œ ์ถ”๊ฐ€ํ•จ

2016/08/16 ์ˆ˜์ •

  1. ๊ธฐ๊ด€ ์ƒ์„ธ์— ์ด๋ฏธ์ง€ 3๊ฐœ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ API ์ˆ˜์ •
  2. ํƒ€์ž„๋ผ์ธ ๊ธ€์— ์ด๋ฏธ์ง€ 3๊ฐœ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ API ์ˆ˜์ •

2016/08/14 ์ˆ˜์ •

  1. ํšŒ์›๊ฐ€์ž… ์‹œ ํ•ธ๋“œํฐ ์ค‘๋ณต ์—๋Ÿฌ ์ฒ˜๋ฆฌ

2016/08/06 ์ˆ˜์ •

  1. ํƒ€์ž„๋ผ์ธ ๋ชฉ๋ก ๋ฐ์ดํ„ฐ์— clover_id ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ - ๊ธด๊ธ‰ํ›„์› ์‹œ์— ์‚ฌ์šฉ

2016/08/03 ์ˆ˜์ •

  1. ๊ฒฐ์ œ ๋ชจ๋“ˆ ๊ตฌํ˜„ ๊ด€๋ จ ๋ฌธ์„œ ์ถ”๊ฐ€

2016/07/25 ์ˆ˜์ •

  1. ๋‚ด ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ API(/user/me)์—์„œ member_id ํ‚ค ์ถ”๊ฐ€ (๋Œ“๊ธ€ ์ˆ˜์ •, ์‚ญ์ œ์— ์ด์šฉ)

2016/07/25 ์ˆ˜์ •

  1. ๋กœ๊ทธ์ธ API์—์„œ ๊ธฐ๊ด€๋‹ด๋‹น์ž์ผ ์‹œ true ๋ฐ˜ํ™˜ํ•˜๋Š” isCompanySup ํ‚ค ์ถ”๊ฐ€

2016/07/20 ์ˆ˜์ •

  1. ์ข‹์•„์š” API๋ฅผ ํ† ๊ธ€๋ง API๋กœ ๋ณ€๊ฒฝ
  2. ๊ฒŒ์‹œ๋ฌผ์„ '์ข‹์•„์š”'ํ•œ ์—ฌ๋ถ€๋ฅผ 'isIlike'๋กœ ๋ฐ˜ํ™˜ (isIlike๊ฐ€ 'y'์ธ ๊ฒฝ์šฐ๊ฐ€ ์ž์‹ ์ด ์ข‹์•„ํ•˜๋Š” ๊ฒŒ์‹œ๋ฌผ)
  3. ์ „์ฒด ํƒ€์ž„๋ผ์ธ์„ ๋ฐ›์•„์˜ฌ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธํ•œ ๊ฒฝ์šฐ์˜ URL์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌ

2016/07/17 ์ˆ˜์ •

  1. ์ธ์ฆ๋ฒˆํ˜ธ ๋ฐœ์†ก API๋ฅผ POST ๋ฉ”์†Œ๋“œ๋กœ ๋ณ€๊ฒฝ

2016/07/14 ์ˆ˜์ •

  1. ๋‚ด ํ›„์› ๊ธฐ๊ด€ ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ์— ํ›„์›๊ธˆ์•ก ์ •๋ณด ์ถ”๊ฐ€ (ํ›„์› ๊ธฐ๊ด€ ๋ณ€๊ฒฝ์—์„œ ์‚ฌ์šฉ)

2016/06/11 ์ˆ˜์ •

  1. ๋‚ด ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ GET์œผ๋กœ ์ˆ˜์ •

2016/06/09 ์ˆ˜์ •

  1. ๋‚ด ํ›„์›๊ธฐ๊ด€ ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ API ์ถ”๊ฐ€

2016/06/08 ์ˆ˜์ •

  1. ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ๋ชจ๋“  API์—์„œ ๊ธฐ์กด์— api_token์„ body parameter๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ํ—ค๋” ์š”์ฒญ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ—ค๋”์—์„œ '_'(์–ธ๋”๋ผ์ธ)์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ api_token์ด ์•„๋‹Œ api-token์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ์•„์ด๋”” ์ค‘๋ณต ํ™•์ธ API ์ถ”๊ฐ€
  3. ํƒ€์ž„๋ผ์ธ (๊ฐœ๋ณ„์‚ฌ์šฉ์ž) URL๋ฅผ /timeline/list์—์„œ /user/me/timeline์œผ๋กœ ๋ณ€๊ฒฝ
  4. ํƒ€์ž„๋ผ์ธ (์ „์ฒด) API ์ถ”๊ฐ€
  5. ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ์‹œ ์ „ํ™”๋ฒˆํ˜ธ ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€ํ•˜๋Š”๊ฒƒ์œผ๋กœ ์ˆ˜์ •
  6. ํƒ€์ž„๋ผ์ธ (ํŠน์ • ํ›„์›๊ธฐ๊ด€) API ์ถ”๊ฐ€
  7. ํƒ€์ž„๋ผ์ธ์—์„œ ๋ณด๊ณ ์„œ๋งŒ ๋ฐ›๋Š” (only_report) ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ optional๋กœ ์ˆ˜์ •

๊ณ„์ • ๊ด€๋ จ

๋กœ๊ทธ์ธ API

[POST] /user/login

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param id ๋กœ๊ทธ์ธ ID
@param passwd ํŒจ์Šค์›Œ๋“œ
@return JSON ์˜ค๋ฅ˜ ์‹œ JSON ํ…์ŠคํŠธ, ์Šน์ธ ์‹œ Array('success', token) ๋ฐ˜ํ™˜

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error is_seceded_member ํƒˆํ‡ดํ•œ ํšŒ์›
error is_not_accepted_yet ์Šน์ธ๋˜์ง€ ์•Š์€ ํšŒ์› (๊ธฐ์—…ํšŒ์›)
error invalid_credentials ์ž˜๋ชป๋œ ์•„์ด๋”” ํ˜น์€ ๋น„๋ฐ€๋ฒˆํ˜ธ
success login_success ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ
success token ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์“ฐ์ผ api-token
success isCompanySup ๊ธฐ๊ด€๋‹ด๋‹น์ž์ผ ์‹œ true ๋ฐ˜ํ™˜

๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ API

๋„ค์ด๋ฒ„ API์—์„œ ๋ฐ›์€ access_token์„ ์ด์šฉํ•˜์—ฌ ํด๋กœ๋ฒ„๊ฐ€๋“  ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
ํ† ํฐ์€ rfc3389๋ฅผ ๋”ฐ๋ฅด๋ฏ€๋กœ ๊ทธ์— ๋งž๋Š” ์ธ์ฝ”๋”ฉ์ด ํ•„์š”
[POST] /user/login/naver

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param token ๋„ค์ด๋ฒ„ access_token
@param phone ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ
@return JSON ์„ฑ๊ณต ์‹œ ์„ฑ๊ณต ํ…์ŠคํŠธ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉํ•  api-token์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋กœ๊ทธ์ธ์ด ์•„๋‹ˆ๋ผ ๊ฐ€์ž…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. ์ด๋•Œ๋Š” 'error':'need_phone_num'์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ํšŒ์›๊ฐ€์ž…

[POST] /user/signup

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param id ๋กœ๊ทธ์ธ ID (์ด๋ฉ”์ผ)
@param name ์ด๋ฆ„
@param passwd ํŒจ์Šค์›Œ๋“œ
@param phone ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€(join_success), ํšŒ์› id (database id)

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error duplicated_phone_number ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ์ค‘๋ณต
success join_success ํšŒ์› ๊ฐ€์ž… ์„ฑ๊ณต

์•„์ด๋”” ์ค‘๋ณตํ™•์ธ

[POST] /user/check/id

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param id ๋กœ๊ทธ์ธ ID (์ด๋ฉ”์ผ)
@return JSON ์ค‘๋ณต ์‹œ is_duplicate ํ‚ค ๊ฐ’์ด true, ์•„๋‹ ์‹œ false

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error wrong_format ์ด๋ฉ”์ผ ํ˜•์‹ ๋งž์ง€ ์•Š์Œ
success is_duplicate true or false

์•„์ด๋”” ์ฐพ๊ธฐ

[POST] /user/findId

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param user_name ํšŒ์› ์ด๋ฆ„
@param phone ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ
@return JSON ์•„์ด๋””

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error failed_to_find_id ์•„์ด๋”” ์ฐพ๊ธฐ ์‹คํŒจ
id ์•„์ด๋”” ์„ฑ๊ณต ์‹œ ์•„์ด๋”” ๋ฐ˜ํ™˜

๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ

[POST] /user/findPw

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param user_id ํšŒ์› ์•„์ด๋””
@param user_name ํšŒ์› ์ด๋ฆ„
@param phone ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ
@return JSON sendSms ๋ฆฌํ„ด๊ฐ’

์œ ์ € ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ด (๋กœ๊ทธ์ธ ํ•œ)

์“ฐ์ง€๋ง๊ฒƒ
[GET] /user

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@return JSON user information

๋‚ด ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

[GET] /user/me

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@return JSON ์œ ์ € ์ด๋ฆ„, ์†Œ์† ๊ธฐ์—…, ์ธ๋„ค์ผ(URL), ์ด ํ›„์› ๊ธˆ์•ก

ํ”„๋กœํ•„ ์‚ฌ์ง„ ์—…๋กœ๋“œ

[POST] /user/profile/upload

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@param upload_pic ์—…๋กœ๋“œํ•  ์‚ฌ์ง„ (form data)
@return JSON ์„ฑ๊ณต ์‹œ success ๋ฐ˜ํ™˜

๋‚ด ํ›„์› ๋‚ด์—ญ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ (์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)

[GET] /user/me/support

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@return JSON otype ํ›„์› ํ˜•ํƒœ
@return JSON clover_seq ํ›„์› ๊ธฐ๊ด€ ์ฝ”๋“œ (id ์•„๋‹˜)
@return JSON price ํ›„์› ๊ธˆ์•ก
@return JSON ์ดํ•˜ ์ƒ๋žต

๋‚ด ํ›„์› ๋‚ด์—ญ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ (์—ฐ๋„๋ณ„)

[GET] /user/me/support/year/{$year}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@param year ์—ฐ๋„ (ํ˜•์‹ : yyyy)
@return JSON otype ํ›„์› ํ˜•ํƒœ
@return JSON clover_seq ํ›„์› ๊ธฐ๊ด€ ์ฝ”๋“œ (id ์•„๋‹˜)
@return JSON price ํ›„์› ๊ธˆ์•ก
@return JSON ์ดํ•˜ ์ƒ๋žต

์กฐํšŒ ๊ฐ€๋Šฅํ•œ ์—ฐ๋„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

[GET] /user/me/support/getAvailableYears

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@return JSON ์—ฐ๋„๋“ค

ํ›„์› ๊ธฐ๊ด€ ๋ณ€๊ฒฝ

[POST] /user/me/support/change

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@param clover_codes ํ›„์› ๋ณ€๊ฒฝ ์ฝ”๋“œ. ','๋กœ ๊ตฌ๋ถ„
@param clover_prices ํ›„์› ๋ณ€๊ฒฝ ๊ธˆ์•ก. ','๋กœ ๊ตฌ๋ถ„
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error price_not_matching ๊ธฐ์กด ํ›„์› ์ „์ฒด ๊ธˆ์•ก๊ณผ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ํ›„์› ์ „์ฒด ๊ธˆ์•ก์ด ๋™์ผํ•˜์ง€ ์•Š์„ ๋•Œ
error duplicated_clover_code ํ›„์› ๋ณ€๊ฒฝ ๊ธฐ๊ด€์— 2๊ฐœ ์ด์ƒ ์ค‘๋ณต ์‹ ์ฒญ๋œ ๊ธฐ๊ด€์ด ์žˆ์„ ๋•Œ
success success_change_clover ๋ณ€๊ฒฝ ์‹ ์ฒญ ์„ฑ๊ณต ์‹œ

ํ›„์›๊ธฐ๊ด€ ๊ด€๋ จ

ํ›„์› ๊ธฐ๊ด€ ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

[GET] /company/list

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@return JSON seq ํ›„์› ๊ธฐ๊ด€ ID
@return JSON code ํ›„์› ๊ธฐ๊ด€ ๋ณ€๊ฒฝ ๋•Œ ์“ฐ์ด๋Š” code
@return JSON subject ํ›„์› ๊ธฐ๊ด€ ๋ช…
@return JSON mobile_intro ํ›„์› ๊ธฐ๊ด€ ์†Œ๊ฐœ (๋ชจ๋ฐ”์ผ์šฉ)
@return JSON mobile_thumbnail ํ›„์› ๊ธฐ๊ด€ ๋ฆฌ์ŠคํŠธ ์ธ๋„ค์ผ (๋ชจ๋ฐ”์ผ์šฉ)
@return JSON mobile_image1 ํ›„์› ๊ธฐ๊ด€ ์ด๋ฏธ์ง€ (์ƒ์„ธ ํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ ์ด๋ฏธ์ง€)
@return JSON mobile_image2 ํ›„์› ๊ธฐ๊ด€ ์ด๋ฏธ์ง€ (์ด๋ฏธ์ง€2)
@return JSON mobile_image3 ํ›„์› ๊ธฐ๊ด€ ์ด๋ฏธ์ง€ (์ด๋ฏธ์ง€3)

๋‚ด ํ›„์› ๊ธฐ๊ด€ ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

[GET] /user/me/companies

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@return JSON ํ›„์› ๊ธฐ๊ด€ ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ์™€ ๊ฐ™์Œ + ํ›„์›๊ธˆ์•ก

ํ›„์› ๊ธฐ๊ด€ ์„ธ๋ถ€ ๋‚ด์—ญ

[GET] /company/{company_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param company_id ํ›„์› ๊ธฐ๊ด€ id
@return JSON ํ›„์› ๊ธฐ๊ด€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ์˜ ๋ฆฌํ„ดํ˜•์‹๊ณผ ๊ฐ™์Œ

ํด๋กœ๋ฒ„๊ฐ€๋“  ๊ฒŒ์‹œํŒ

๊ณต์ง€์‚ฌํ•ญ ๋ฐ›์•„์˜ค๊ธฐ

[GET] /board/notice

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@return JSON ์ œ๋ชฉ, ๋‚ด์šฉ, ๋“ฑ๋ก์ผ

์ž์ฃผํ•˜๋Š” ์งˆ๋ฌธ ๋ฐ›์•„์˜ค๊ธฐ

[GET] /board/faq

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@return JSON ์ œ๋ชฉ, ๋‚ด์šฉ, ๋“ฑ๋ก์ผ

ํƒ€์ž„๋ผ์ธ

ํƒ€์ž„๋ผ์ธ ๋ฐ›์•„์˜ค๊ธฐ (๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž)

protected-urgency, public-urgency ์ˆœ. ์ผ๋ฐ˜๊ณผ ๋ณด๊ณ ์„œ๋Š” ๋‚ ์งœ์ˆœ์œผ๋กœ ์ •๋ ฌ
[GET] /user/me/timeline

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@param (Optional) only_report ๋ณด๊ณ ์„œ๋งŒ ๋ฐ›์•„์˜ค๊ธฐ (0: false, 1: true)
@return JSON ๊ฒŒ์‹œ๋ฌผ ๋ฆฌ์ŠคํŠธ + ๋Œ“๊ธ€ ์ˆ˜

ํƒ€์ž„๋ผ์ธ ๋ฐ›์•„์˜ค๊ธฐ (์ „์ฒด) - ๋น„๋กœ๊ทธ์ธ

public ๊ฒŒ์‹œ๋ฌผ๋งŒ ๋ฐ›์•„์˜ด (๋‹น์—ฐํžˆ ๋ณด๊ณ ์„œ๋Š” ๋ฐ›์•„์˜ค์ง€ ์•Š์Œ. urgency, normal ์ˆœ)
[GET] /timeline/all

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@return JSON ๊ฒŒ์‹œ๋ฌผ ๋ฆฌ์ŠคํŠธ + ๋Œ“๊ธ€ ์ˆ˜

ํƒ€์ž„๋ผ์ธ ๋ฐ›์•„์˜ค๊ธฐ (์ „์ฒด) - ๋กœ๊ทธ์ธ

public ๊ฒŒ์‹œ๋ฌผ๋งŒ ๋ฐ›์•„์˜ด (๋‹น์—ฐํžˆ ๋ณด๊ณ ์„œ๋Š” ๋ฐ›์•„์˜ค์ง€ ์•Š์Œ. urgency, normal ์ˆœ)
[GET] /timeline/all/withlogin

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@return JSON ๊ฒŒ์‹œ๋ฌผ ๋ฆฌ์ŠคํŠธ + ๋Œ“๊ธ€ ์ˆ˜

ํƒ€์ž„๋ผ์ธ ๋ฐ›์•„์˜ค๊ธฐ (ํŠน์ • ํ›„์›๊ธฐ๊ด€)

ํŠน์ • ํ›„์›๊ธฐ๊ด€์˜ public ๊ฒŒ์‹œ๋ฌผ๋งŒ ๋ฐ›์•„์˜ด (๋‹น์—ฐํžˆ ๋ณด๊ณ ์„œ๋Š” ๋ฐ›์•„์˜ค์ง€ ์•Š์Œ. urgency, normal ์ˆœ)
[GET] /timeline/clover/{$clover_code}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param clover_code ํ›„์›๊ธฐ๊ด€ ์ฝ”๋“œ (์˜ˆ: a01)
@return JSON ๊ฒŒ์‹œ๋ฌผ ๋ฆฌ์ŠคํŠธ + ๋Œ“๊ธ€ ์ˆ˜

ํƒ€์ž„๋ผ์ธ ๊ฒŒ์‹œ๋ฌผ ์„ธ๋ถ€ ๋‚ด์šฉ

๋Œ“๊ธ€ ์ˆ˜๋„ ๊ฐ€์ ธ์™€์•ผ ํ• ๋“ฏ. ์ˆ˜์ •์˜ˆ์ •
[GET] /timeline/{$board_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param board_id ๊ฒŒ์‹œ๋ฌผ ID
@return JSON ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ธ

ํƒ€์ž„๋ผ์ธ ๊ธ€์“ฐ๊ธฐ

[POST] /timeline/write

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN(๊ธฐ๊ด€๋‹ด๋‹น์ž๋งŒ)
@param type ๊ฒŒ์‹œ๋ฌผ ํƒ€์ž… (urgency: ๊ธด๊ธ‰ ํ›„์›, normal: ์ผ๋ฐ˜, report: ๋ณด๊ณ ์„œ // report๋Š” ์“ฐ์ด์ง€ ์•Š์Œ)
@param text ๊ฒŒ์‹œ๋ฌผ ํ…์ŠคํŠธ (์ œ๋ชฉ ์•„๋‹˜)
@param image1 ์ด๋ฏธ์ง€ ํŒŒ์ผ (์ธ๋„ค์ผ)
@param image2 ์ด๋ฏธ์ง€ ํŒŒ์ผ 2
@param image3 ์ด๋ฏธ์ง€ ํŒŒ์ผ 3
@param limitation limitation ๊ถŒํ•œ (public: ์ „์ฒด ๊ณต๊ฐœ, protected: ํ›„์›์ž๋งŒ ๊ณต๊ฐœ, private: ๋น„๊ณต๊ฐœ)
@param due_date (๊ธด๊ธ‰ํ›„์›์ธ ๊ฒฝ์šฐ. ์•„๋‹Œ ๊ฒฝ์šฐ null์„ ๋ณด๋‚ด๋ฉด ๋จ) ํ›„์› ๋งˆ๊ฐ์ผ. ํ˜•์‹: yyyy-mm-dd
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error type_should_be_assigned ํƒ€์ž…์ด null์ด๋‚˜ empty์ผ ๋•Œ
error text_will_not_be_empty ํ…์ŠคํŠธ(๋‚ด์šฉ)๊ฐ€ null์ด๋‚˜ empty์ผ ๋•Œ
error due_date_should_be_assinged (๊ธด๊ธ‰ํ›„์›) ๋งˆ๊ฐ์ผ์ด null์ด๋‚˜ empty์ผ ๋•Œ
error limitation_should_be_assinged ๊ถŒํ•œ์ด null์ด๋‚˜ empty์ผ ๋•Œ
success write_success ๊ธ€์“ฐ๊ธฐ ์„ฑ๊ณต

ํƒ€์ž„๋ผ์ธ ์ˆ˜์ •

[POST] /timeline/modify/{$board_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN(๊ธฐ๊ด€๋‹ด๋‹น์ž๋งŒ)
@param board_id ๊ฒŒ์‹œ๋ฌผ ID
@param type ๊ฒŒ์‹œ๋ฌผ ํƒ€์ž… (urgency: ๊ธด๊ธ‰ ํ›„์›, normal: ์ผ๋ฐ˜, report: ๋ณด๊ณ ์„œ // report๋Š” ์“ฐ์ด์ง€ ์•Š์Œ)
@param text ๊ฒŒ์‹œ๋ฌผ ํ…์ŠคํŠธ (์ œ๋ชฉ ์•„๋‹˜)
@param image1 ์ด๋ฏธ์ง€ ํŒŒ์ผ (์ธ๋„ค์ผ)
@param image2 ์ด๋ฏธ์ง€ ํŒŒ์ผ 2
@param image3 ์ด๋ฏธ์ง€ ํŒŒ์ผ 3
@param limitation limitation ๊ถŒํ•œ (public: ์ „์ฒด ๊ณต๊ฐœ, protected: ํ›„์›์ž๋งŒ ๊ณต๊ฐœ, private: ๋น„๊ณต๊ฐœ)
@param due_date (๊ธด๊ธ‰ํ›„์›์ธ ๊ฒฝ์šฐ. ์•„๋‹Œ ๊ฒฝ์šฐ null์„ ๋ณด๋‚ด๋ฉด ๋จ) ํ›„์› ๋งˆ๊ฐ์ผ. ํ˜•์‹: yyyy-mm-dd
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error type_should_be_assigned ํƒ€์ž…์ด null์ด๋‚˜ empty์ผ ๋•Œ
error text_will_not_be_empty ํ…์ŠคํŠธ(๋‚ด์šฉ)๊ฐ€ null์ด๋‚˜ empty์ผ ๋•Œ
error due_date_should_be_assinged (๊ธด๊ธ‰ํ›„์›) ๋งˆ๊ฐ์ผ์ด null์ด๋‚˜ empty์ผ ๋•Œ
error limitation_should_be_assinged ๊ถŒํ•œ์ด null์ด๋‚˜ empty์ผ ๋•Œ
success write_success ๊ธ€์“ฐ๊ธฐ ์„ฑ๊ณต

ํƒ€์ž„๋ผ์ธ ์‚ญ์ œ

[POST] /timeline/delete/{$board_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param api_token USER TOKEN(๊ธฐ๊ด€๋‹ด๋‹น์ž๋งŒ - ๊ธ€์“ด์ด๋งŒ ์‚ญ์ œ๋จ)
@param board_id ๊ฒŒ์‹œ๋ฌผ ID
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

ํƒ€์ž„๋ผ์ธ ์ข‹์•„์š”

[POST] /timeline/like/{$board_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param api_token USER TOKEN
@param board_id ๊ฒŒ์‹œ๋ฌผ ID
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
success success_like_board ์ข‹์•„์š” ์‹œ
success success_dislike_board ์ข‹์•„์š” ์ทจ์†Œ ์‹œ

ํƒ€์ž„๋ผ์ธ ๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

[GET] /timeline/comment/{$board_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param board_id ๊ฒŒ์‹œ๋ฌผ ID
@return JSON ๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ (+ properties)

ํƒ€์ž„๋ผ์ธ ๋Œ“๊ธ€ ๊ธ€์“ฐ๊ธฐ

[POST] /timeline/comment/write

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN
@param board_id ๊ฒŒ์‹œ๋ฌผ ID
@param text ๊ฒŒ์‹œ๋ฌผ ํ…์ŠคํŠธ (์ œ๋ชฉ ์•„๋‹˜)
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

ํƒ€์ž„๋ผ์ธ ๋Œ“๊ธ€ ์ˆ˜์ •

[POST] /timeline/comment/modify/{comment_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN (๊ธ€์“ด์ด๋งŒ ๊ฐ€๋Šฅ)
@param comment_id ๋Œ“๊ธ€ ID
@param text ๊ฒŒ์‹œ๋ฌผ ํ…์ŠคํŠธ (์ œ๋ชฉ ์•„๋‹˜)
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

ํƒ€์ž„๋ผ์ธ ๋Œ“๊ธ€ ์‚ญ์ œ

[POST] /timeline/comment/delete/{comment_id}

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@header api-token USER TOKEN (๊ธ€์“ด์ด๋งŒ ๊ฐ€๋Šฅ)
@param comment_id ๋Œ“๊ธ€ ID
@return JSON ์„ฑ๊ณต ๋ฉ”์‹œ์ง€

๋ฐ˜ํ™˜ ๊ฐ’

ํ‚ค ๊ฐ’ ์„ค๋ช…
error delete_comment_failed ๋Œ“๊ธ€ ์‚ญ์ œ ์‹คํŒจ
success delete_comment_success ๋Œ“๊ธ€ ์‚ญ์ œ ์„ฑ๊ณต

๊ธฐํƒ€

์ธ์ฆ ๋ฒˆํ˜ธ ๋ฐœ์†ก API

์‹ค์ œ ๋ฌธ์ž ๋ฐœ์†ก๋˜๋‹ˆ ํ…Œ์ŠคํŠธ๋Š” ์ ๋‹นํžˆ!
[GET] /sms/auth

๊ตฌ๋ถ„ ํŒŒ๋ผ๋ฏธํ„ฐ or ํƒ€์ž… ์„ค๋ช…
@param phone_num ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ
@return JSON ์ธ์ฆ๋ฒˆํ˜ธ

๊ฒฐ์ œ

๊ฒฐ์ œ ์‹œ์Šคํ…œ์€ API์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํด๋กœ๋ฒ„๊ฐ€๋“  ์›น์„œ๋ฒ„์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ง์ ‘ ์›นํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค.
์•ˆ๋“œ๋กœ์ด๋“œ ํ˜น์€ iOS ์›น๋ทฐ์—์„œ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋Š” URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ผ์‹œ ํ›„์› http://clovergarden.co.kr/agspay/AGSMobile_start_temp?seq=[company_id]
์ •๊ธฐ ํ›„์› http://clovergarden.co.kr/agspay/AGSMobile_start_resv?seq=[company_id]

[company_id] ๊ฐ’์—๋Š” ๊ธฐ๊ด€์˜ id(seq)๊ฐ€ ๋“ค์–ด์˜ต๋‹ˆ๋‹ค.

์ฃผ์˜! ์ƒ๊ธฐ URL ์š”์ฒญ๋˜ํ•œ Custom Header๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์„ ์œ„ํ•ด์„œ api-tokenํ‚ค๋ฅผ token์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์ฃผ์„ธ์š”.

๋ฆฌํ„ด

์ƒ๊ธฐ ์›น์€ ๊ฒฐ์ œ์— ์„ฑ๊ณตํ•˜๋ฉด clovergardenapp:// ์ด๋ผ๋Š” APP URL Scheme์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ ์šฉ๋˜๋Š” ์Šค๋งˆํŠธํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ clovergardenapp์ด๋ผ๋Š” URL Scheme์ด ํ˜ธ์ถœ๋˜๋ฉด ๋‹ค์‹œ ์•ฑ ๋ฉ”์ธ์œผ๋กœ ๋Œ์•„๊ฐ€๋„๋ก ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์˜ˆ)iOS

// webView์—์„œ request๊ฐ€ ์กด์žฌํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” delegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:  (UIWebViewNavigationType)navigationType  
{  
    NSURL *url = request.URL;  
    if ([url.scheme isEqualToString:@"http"]) {  
        return YES;  
    } else if ([url.scheme isEqualToString:@"clovergardenapp"]) { // URL Scheme์ด clovergardenapp์ผ ๋•Œ  
        [self backToMain:self]; // ์ปจํŠธ๋กค๋Ÿฌ ์ข…๋ฃŒ ํ›„ ๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋Œ์•„์˜ด
      
        return NO;  
    }  
 
    return YES;  
} 

FAQ / ๊ณต์ง€์‚ฌํ•ญ

์•ˆ๋“œ๋กœ์ด๋“œ๋Š” iOS์™€ ๋‹ฌ๋ฆฌ ์ง์ ‘ URL์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋˜๋Š” URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ http://clovergarden.co.kr/mobile/notice/list/{id}
FAQ http://clovergarden.co.kr/mobile/faq/list/{id}

{id}๋Š” ๋ณด์—ฌ์ค„ ๊ฒŒ์‹œ๋ฌผ์˜ sequence์ž…๋‹ˆ๋‹ค.


FCM ํ‘ธ์‹œ

FCM ํ‘ธ์‹œ์— ๊ด€ํ•œ ๋‚ด์šฉ์€ ์ง์ ‘ FCM๋ฌธ์„œ( https://firebase.google.com/docs/cloud-messaging/ )๋ฅผ ์ฐพ์•„๋ณด์…”๋„ ๋˜๋‚˜, ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ํ•œ์ •์ ์ด๊ธฐ์— ๋ฌธ์„œ์— ๋”ฐ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
ํ•„์š”ํ•œ ๊ฒƒ์€ API KEY์™€ ๋ณด๋‚ด์งˆ ๋‚ด์šฉ 2๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ์˜ ๋‚ด์šฉ(JSON)์œผ๋กœ HTTP ๋ฆฌํ€˜์ŠคํŠธ(POST)๋ฅผ ์ „์†กํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
URL: https://fcm.googleapis.com/fcm/send
------------------------------------ HEADER --------------------------------------
Content-Type: application/json
Authorization: key=AIzaSyAEyaxzaSjR7ViHaphBKxm6R8dVSXQ838s // ํด๋กœ๋ฒ„๊ฐ€๋“ ์˜ ์„œ๋ฒ„ํ‚ค์ž…๋‹ˆ๋‹ค.

{
  "to": "/topics/news",
  "notification": {
    "body": "This is a Firebase Cloud Messaging Topic Message!",
   }
}

ํด๋กœ๋ฒ„๊ฐ€๋“  ์•ฑ์—์„œ๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ news๋ผ๋Š” ํ† ํ”ฝ์— ๋ณด๋‚ด๊ธฐ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
์œ„์˜ ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด message_id๋ผ๋Š” ํ‚ค๋ฅผ ๊ฐ€์ง„ json ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.