고급웹프로그래밍 텀프로 포토 모자이크 앱을 만들었다.
포토 모자이크를 만들기 위해 제일 처음 Graph API를 사용해서 나의 프로필 사진 하나와 친구들의 프로필 사진을 랜덤으로 50장 정도 가져와서 사진이 없는 경우를 제외하고는 다 저장을 하고, 화면에 출력도 하였다. 내 프로필 사진을 배경으로 쓸 것이기 때문에 제일 큰 원본 사진으로 가지고 왔다.
나는 Graph API를 이용해서 프로필 사진을 큰것으로 가지고 왔는데 이런경우 이미지 파일의 주소가 https 로 앞부분이 시작하게 된다.
* 페이스북이 좀 바꼈는지 원래 쓰던 FB.Event.subscribe('auth.login', function(response) 방법으로는 제대로 결과가 나오지않고 재로드가 무한으로 계속 일어나기 때문에 소스부분을 아래와 같이 바꿔줘야 한다. (구글 검색 중에 발견했다. 인터넷익스플로러는 이 방법으로 해결되지 않는다. 직접 검색해 보시길!)
FB.Event.subscribe('auth.login', function(response) { if(navigator.userAgent.toLowerCase().indexOf("safari") > -1) { if (response.session) { $('body').prepend(""); $('#safariFix') .attr('method', 'POST') .attr('action', location.href) .append(''); $('#safariFix_session').attr('value', JSON.stringify(response.session)); $('#safariFix').submit(); } } else { window.location.reload(); // Whenever the user logs in, we refresh the page } });
[ 내 프로필 사진을 큰 사진으로 가져오기 ]
- get_me 함수를 만들었다.
function get_me(){ FB.api('/me/picture?type=large', function(response){ document.getElementById("me").innerHTML += "
"; //가지고 온 사진을 div 안에 넣기 document.myForm.img.value = response; //가지고 온 사진을 따로 저장해 넣었다. 폼을 php로 넘길 것이기 때문에 이렇게 했다. }); }
[ 친구들 프로필 사진들 랜덤으로 빼와서 출력하고 저장하기 ]
- 사진이 없는 경우도 있기 때문에 그런경우는 제외 시킴.
- 가져오는 사진들 중복 허용.
function get_friends() { FB.api('/me/friends?fields=gender,id', function(response) { var count = 0; while(response.data[count] != null) { count++; } // 랜덤으로 친구 선택 for(var i=0;i<50;i++) { var rand = Math.floor(Math.random() * count); // 친구 정보 받아오기 (사진, 이름 등) FB.api('/' + response.data[rand].id + "?fields=picture", function(response) { if(response.picture.indexOf("static-ak")<0){
//사진이 없는경우 오류뱉음. 그러니까 사진이 없는 경우를 제외한 사진들만 저장. // 사진, 이름 출력 document.getElementById("friends").innerHTML += "";
"; document.myForm.val.value += "&" + response.picture; } }); } //친구 이미지를 다 가져왔으면 이제 전송버튼 활성화 (사진 안가져온 상태에서 바로 전송버튼을 누르면 php 파일에서 사진이 없다고 오류뱉음.) setTimeout ('end()', 2000); }); } //get_friends 함수 끝 function end(){ document.myForm.submit.disabled = ''; }
딱 보기 편하게 정리 한게 아니라 내가 짠 코드를 그대로 붙여넣었을 뿐이라서 알아보기 힘들 수 있음.
'공부 > 자바스크립트 jQuery' 카테고리의 다른 글
[JAVASCRIPT] utf-8일때 alert 한글 깨짐 해결 (0) | 2014.03.13 |
---|---|
글자 애니메이션효과 jquery Lettering (0) | 2012.07.03 |
jQuery) 이벤트 연결 bind() - 클릭할때마다 글에 '+'가 붙는 에제 (0) | 2012.03.11 |
jQuery) 지속적 이미지 순서 변경 (문서 객체의 이동) (0) | 2012.03.10 |
jQuery) 필터 선택자를 사용한 테이블 줄무늬 (0) | 2012.03.09 |
댓글