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>
"프로그래밍 / TIP& Study" 분류의 다른 글
| [퀴즈] SQLite collate 문제 (0) | 2010/07/16 |
| [TIP] XP, Vista에서 CD/DVD롬이 보이지 않을 경우 (1) | 2009/08/05 |
| [C#] WinForm 에서 Docking 순서 변경하기 (0) | 2009/07/29 |
| [WPF] InkCanvas 사용하기 (0) | 2009/06/29 |
| [C#] Control Library 만들 때 TIP (0) | 2009/06/26 |
| [C#] 자연스럽게 Pen으로 그리기 (0) | 2009/06/23 |
| [WPF] Canvas의 Width, Height Binding (0) | 2009/06/23 |
| [C#] DateTime으로 7일 후는 어떻게? (0) | 2009/06/23 |

댓글을 달아 주세요
음.. XML로 통신하는군요.
멋집니다. ^^;
댓글 단 시각을 보아하니
오늘 지각하시겠군요.. 크하하
어디서 다운받는건가요?^^;;
인터넷돌아댕기는 1.8 다운받았는데요
사진첩의 글이 백업이 안되요.. 사진만 html로 변환되던데요
어케하죠?
싸이코 월드는 현재 개발이 중단 되었습니다.
죄송합니다.
이걸 이용해서, 싸이월드 사진첩에
플래시를 곧바로 올리는것도 가능할가요?
가능 하다면, 방법 대충좀 ^^;;
물론 가능하겠지요
KEY 조합방법을 모르겠네요 . ㅜ.ㅜ
전에 어떻게 만드는지 본적이 있었는데
꽤나 귀찮게 되어 있었던거 같습니다.
혹시나 알아내시면 저도 알려주세요.. ^^