본문 바로가기
Develop/PHP

[PHP]인스타그램(Instagram) API 적용

by bellsilver7 2016. 1. 14.
728x90

1. https://www.instagram.com/developer 에서 Manage Client 등록

위 경로에 들어가 로그인 후, 

상단 메뉴의 'Manage Clients' 클릭!



그 다음 넘어간 페이지에서 'Register a New Client' 클릭!



다음의 내용을 등록(Application Name, Description, Website URL, Valid redirect URIs 등..)



등록 후, Manage Clients 페이에 가면

다음과 같은 화면이 출력된다.


2. CLIENT ID / CLIENT SECRET / WBESITE URL / REDIRECT URI 각각 빨간줄의 내용을 메모해둔다.



3. instagram.php 파일을 만들어 다음 소스코드를 붙여넣는다.


<script type="text/javascript">

window.open('https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URL&response_type=code');

</script>


CLIENT-ID 과 REDIRECT-URL 에는 2번 과정에서 메모해둔 정보를 입력한다.


브라우저에서 위 파일을 들어가면,


다음과 같은 화면이 실행되는데, 'Authorize'를 클릭! 하면 위에서 작성한 REDIRCET URI 페이지로 코드 값을 넘겨주는데 넘겨 받는 페이지는 다음과 같다. 이 페이지에서 최종적으로 ACCESS TOKEN을 확인한다.


<?php

getAccessToken();


function getAccessToken()

{

if($_GET['code']) {


$code = $_GET['code'];

$url = "https://api.instagram.com/oauth/access_token";

$access_token_parameters = array (

'client_id' => CLIENT ID 입력,

'client_secret' => CLIENT SECRET 입력,

'grant_type' => 'authorization_code',

'redirect_uri' => REDIRECT URI 입력,

'code' => $code

);



$curl = curl_init($url);


curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $access_token_parameters);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);


$result = curl_exec($curl);


curl_close($curl);


$arr = json_decode($result, true);

echo "access_Token: ".$arr['access_token'];

echo "<br/>";

echo "user_name: ".$arr['user']['username'];


}

}

?>


위 소스는 ACCESS_TOKEN을 받기 위한 것이다. 


위 소스로 안되면 

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token


4. 인스타그램 API 적용(JSON)

출력하고자 하는 페이지에 다음과 같이 적용하면 끝!

<?php


$client_id="CLIENT ID 입력";

$client_secret="CLIENT SECRET 입력";

$access_token = "ACCESS TOKEN 입력";


$_source=file_get_contents("https://api.instagram.com/v1/users/self/media/recent?client_id=".$client_id."&access_token=".$access_token."&count=6");


$_data=json_decode($_source);


$json=$_data->data;


foreach($json as $data) {

echo "<div style=\"float:left;margin:5px;\"><a href=\"".$data->link."\" target=\"_blank\"><img src=\"".$data->images->thumbnail->url."\" class=\"image-style1 respond-img\"></a></div>";

}


?>


[이미지 캡쳐] https://www.instagram.com/developer




728x90

댓글