[Instagram] 외부 이미지 인스타그램 피드 업로드 API
최근 페이스북의 외부 페이지 공유기능처럼 인스타그램에서도 외부 이미지를 공유할 방법을 알아봤습니다.
처음 구글링에 나오는 내용은 “인스타그램의 정책으로 인해 외부 이미지 API는 제공되지 않는다.” 였습니다.
어떤 정책을 말하는가 찾아보니 저품질 이미지가 무분별하게 업로드 될 수 있는 이슈로 제한을 한 것이었습니다. 실제 이런 이유로 PC로 이미지를 올리지 못합니다.
하지만 방법은 있었는데 각 인증과 업로드에 대한 URL을 CURL로 호출하는 것입니다.
소스의 출처는 다음과 같습니다.
http://lancenewman.me/posting-a-photo-to-instagram-without-a-phone/
실제 구현을 해보면서 역시나 한번에 되는 이변은 없었습니다. 저는 몇가지 이슈가 있었는데 적어보도록 하겠습니다.
- Error while trying to login (코드 : 400) : 인증에 필요한 내 인스타그램 아이디/패스워드를 까먹음.
- Error while trying to post the image (코드 : 400) : 인증 성공 후 쿠키를 저장할 디렉토리에 퍼미션 권한이 부족했음. (707 또는 757 필요)
- Success 가 출력됐지만 피드에 올라가지 않음 : PHP 버전의 이슈로 GetPostData 함수의 photo 배열 키의 데이터를 버전에 맞춰 변경 필요. (저는 php 5.6.x였고 링크 내 소스는 php 5.5.x에서 동작)
이렇게 3개의 이슈가 있었고 제가 추가 주석과 함께 정리한 코드를 Github에 공유합니다. 정리했다곤하지만 그렇게 깔끔하진 않습니다.