Cyworld 사진첩 업로드 API

#개요 : 본 API는 싸이월드 스튜디오가 사용하는 API입니다.

host가 따로 명시되지 않은 API는 모두 host가 cystudio.cyworld.nate.com 입니다.

1. akey 받아오기
POST  /ims/cya_login.asp?key=.........

.......<- 이부분은 아이디와 비밀번호의 조합으로 만들어 집니다.
아이디와 비밀번호의 조합을 만들때 사용한 key는 ...... 입니다.
개발자 중에 이동원이라고 있나보죠?

RESPONSE
Set-Cookie: akey=8A876E5F0A70F9517274DF082D607419;

<?xml version='1.0' encoding='euc-kr'?>

<IF_RESPONSE>

<RESULT>1</RESULT>

</IF_RESPONSE>
# 모든 api를 사용하기 위해서 akey를 쿠키로 전송해야 합니다.
(물론 다른 쿠키 값들도 전송해야 하겠지요)


2. 로그인 하기
POST /login.jsp
Content-Type: application/x-www-form-urlencoded
Host: cyxso.cyworld.nate.com
Content-Type: application/x-www-form-urlencoded

email=.....&passwd=......  <--Post Value

RESPONSE ex)
HTTP/1.1 302 Found
Date: Wed, 19 Jul 2006 05:34:33 GMT
Server: Apache
Cache-Control: no-store
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: http://cyworld.nate.com/ims/cy_login.asp?result=....
Content-Length: 182
Set-Cookie: ndr=|NDI1MzgzNTM=; domain=.nate.com; path=/
Set-Cookie: UVID=....; domain=.nate.com; path=/; expires=Sat, 16-Jul-2016 05:34:33 GMT
Set-Cookie: RDB=...
Set-Cookie: MAIN=...    domain=.cyworld.nate.com; path=/
Set-Cookie: cookieinfouser=... domain=.cyworld.nate.com; path=/; HttpOnly
Set-Cookie: enc%5Fnateon%5Femail=... domain=.cyworld.nate.com; path=/
Set-Cookie: ETC=cookieinfousers= .... 5Fenc%5Fnateon%5Femail=.....; domain=.nate.com; path=/
Set-Cookie: CFN=...; path=/
Connection: close

3. 현재 로그인한 user의 폴더 목록 가져오기
POST /pims/board/image/cystudio/if_imgbrd_folder_list.asp
Content-Type: application/x-www-form-urlencoded

RESPONSE

<?xml version='1.0' encoding='euc-kr'?>
<IF_RESPONSE>
  <RESULT>1</RESULT>
  <USE_TOTALVIEW>1</USE_TOTALVIEW>
  <USE_PHONE></USE_PHONE>
  <PHONE_BOARD_NO>0</PHONE_BOARD_NO>
  <FOLDER_ITEM>
    <BOARD_NO>사진첩 번호</BOARD_NO>
    <FOLDER_NAME><![CDATA[사진첩 이름]]></FOLDER_NAME>
    <WRITE_OPEN>1</WRITE_OPEN>
    <IS_LINE>0</IS_LINE>
    <BOPEN>1</BOPEN>
    <SORT>1</SORT>
    <ITEM_CNT>사진 개수</ITEM_CNT>
    <LCLASS>0</LCLASS>
    <MCLASS>0</MCLASS>
    <GROUP1>0</GROUP1>
    <GROUP2>0</GROUP2>
    <GROUP3>0</GROUP3>
    <GROUP4>0</GROUP4>
    <UPNEWS>0</UPNEWS>
    <IS_NOTICE>1</IS_NOTICE>
  </FOLDER_ITEM>
  <FOLDER_ITEM>
    ...
  </FOLDER_ITEM>
</IF_RESPONSE>

4. 사진첩의 목록을 가져옴
POST /pims/board/image/cystudio/if_imgbrd_item_list.asp
Content-Type: application/x-www-form-urlencoded

board_no=21&cpage=1  <-- Post Value

RESPONSE

<?xml version='1.0' encoding='euc-kr'?>
<IF_RESPONSE>
  <RESULT>1</RESULT>
  <CUR_PAGE>1</CUR_PAGE>
  <TOT_PAGE>2</TOT_PAGE>
  <CUR_IMG_CNT>28</CUR_IMG_CNT>
  <TOT_IMG_CNT>총 사진 수</TOT_IMG_CNT>
  <IMAGE_ITEM>
    <ITEM_SEQ>아이템 번호</ITEM_SEQ>
    <BOARD_NO>게시판 번호</BOARD_NO>
    <ITEM_TITLE><![CDATA[글 제목]]></ITEM_TITLE>
    <ITEM_IMAGE>사진 URL</ITEM_IMAGE>
    <ITEM_BOPEN>0</ITEM_BOPEN>
    <ITEM_SOPEN>0</ITEM_SOPEN>
    <WRITER_ID>글쓴이 TID</WRITER_ID>
    <WRITER_NM>글쓴이 이름</WRITER_NM>
    <WRITE_DT>글쓴 날짜</WRITE_DT>
    <SCRAP_CNT>스크랩한 수</SCRAP_CNT>
    <SEARCH_OPEN>0</SEARCH_OPEN>
  </IMAGE_ITEM>
  <IMAGE_ITEM>
    ...
  </IMAGE_ITEM>
</IF_RESPONSE>

5. 게시물에 대한 정보를 가져옴
POST /pims/board/image/cystudio/if_imgbrd_item_get.asp
Content-Type: application/x-www-form-urlencoded

item_seq=아이템 번호 ex)183598001

REPONSE

<?xml version='1.0' encoding='euc-kr'?>
<IF_RESPONSE>
  <RESULT>1</RESULT>
  <ITEM_SEQ>아이템 번호</ITEM_SEQ>
  <BOARD_NO>게시판 번호</BOARD_NO>
  <ITEM_TITLE><![CDATA[글제목]]></ITEM_TITLE>
  <ITEM_BOPEN>게시판 공개권한</ITEM_BOPEN>
  <WRITER_ID>글쓴이 TID</WRITER_ID>
  <WRITER_NM>글쓴이 이름</WRITER_NM>
  <WRITER_DT>글쓴 날짜</WRITER_DT>
  <VISIT_CNT>1</VISIT_CNT>
  <ITEM_IMAGE>사진 URL</ITEM_IMAGE>
  <ITEM_CONTENT><![CDATA[본문 내용]]></ITEM_CONTENT>
</IF_RESPONSE>

6. 사진첩 간의 게시물 이동
POST /pims/board/image/cystudio/if_imgbrd_item_move.asp
Content-Type: application/x-www-form-urlencoded

item_seq=아이템번호&board_no=게시판번호(from)&tboard_no=게시판번호(to)  <-- post value

RESPONSE

<?xml version='1.0' encoding='euc-kr'?>
<IF_RESPONSE>
<RESULT>1</RESULT>
</IF_RESPONSE>

7. 사진첩에 사진, swf 파일 업로드
POST /common/cystudio_upload_ok.asp

Content-Type: multipart/form-data; boundary=CyStudioUploader-----
Host: cyupload4.cyworld.nate.com
Content-Length: 첨부파일 크기
--CyStudioUploader-----
Content-Disposition: form-data; name="imgFile"; filename="파일 경로"
Content-Type: image/jpeg
.....raw data...
--CyStudioUploader-------

# multi parts 방식으로 파일은 업로드하고 따로 게시물 정보는 8번 API를 통해 업로드 한다. boundary는 길이만 맞다면 임의값이 되어도 된다

RESPONSE

<?xml version="1.0" encoding="euc-kr" ?>
<IF_RESPONSE>
  <RESULT>1</RESULT>
  <RESULT_DETAIL>0</RESULT_DETAIL>
  <IMAGE_URL>이미지가 올라간</IMAGE_URL>
</IF_RESPONSE>

8. 사진첩에 게시물 올리기
POST /pims/board/image/cystudio/if_imgbrd_item_write.asp
Content-Type: application/x-www-form-urlencoded

bopen=0&board_no=게시판 번호&title=글 제목&content=본문 내용&attach_type=1&attach_nm=첨부파일 경로&attach_size=첨부파일 크기&sopen=일촌공개설정&searchOpen=검색공개설정

RESPONSE

<?xml version='1.0' encoding='euc-kr'?>
<IF_RESPONSE>
<RESULT>1</RESULT>
<ITEM_SEQ>아이템 번호</ITEM_SEQ>
</IF_RESPONSE>

9. 폴더 관리
POST /pims/board/image/cystudio/if_imgbrd_folder_manage.asp
Content-Type: application/x-www-form-urlencoded

board_no=게시판번호1,게시판번호2,게시판번호3,게시판번호4,게시판번호5.......
&folder_nm=게시판번호1의 이름^$$게시판번호2의 이름^$$^.....
&sort=1,2,3,4,5
&bopen=1,1,0,5,0
&group1=0,0,0,0,0
&group2=0,0,0,0,0
&group3=0,0,0,0,0
&group4=0,0,0,0,0
&lclass=0,0,0,2,0
&mclass=0,0,0,15,0
&upnews=0,0,1,1,0
&isLine=0,0,0,0,0
&isNotice=1,1,0,1,1

<?xml version='1.0' encoding='euc-kr'?>
<IF_RESPONSE>
<RESULT>1</RESULT>
</IF_RESPONSE>

chaoskcuf
tags : ,
프로그래밍/TIP& Study 2006/07/19 18:42

트랙백 주소 : http://chaoskcuf.com/trackback/9

댓글을 달아 주세요

  1. 파이어준 2006/07/20 02:05  수정/삭제  댓글쓰기

    음.. XML로 통신하는군요.
    멋집니다. ^^;

  2. 김소현 2006/08/01 01:42  수정/삭제  댓글쓰기

    어디서 다운받는건가요?^^;;
    인터넷돌아댕기는 1.8 다운받았는데요
    사진첩의 글이 백업이 안되요.. 사진만 html로 변환되던데요
    어케하죠?

    • chaoskcuf 2006/08/03 18:50  수정/삭제

      싸이코 월드는 현재 개발이 중단 되었습니다.
      죄송합니다.

  3. 서희 2006/09/26 13:34  수정/삭제  댓글쓰기

    이걸 이용해서, 싸이월드 사진첩에

    플래시를 곧바로 올리는것도 가능할가요?

    가능 하다면, 방법 대충좀 ^^;;

  4. 안지환 2008/02/25 13:17  수정/삭제  댓글쓰기

    KEY 조합방법을 모르겠네요 . ㅜ.ㅜ

    • chaoskcuf 2008/02/25 13:29  수정/삭제

      전에 어떻게 만드는지 본적이 있었는데
      꽤나 귀찮게 되어 있었던거 같습니다.

      혹시나 알아내시면 저도 알려주세요.. ^^

Powerd by Textcube, designed by criuce
rss