2014-06-15 2 views
0

API를 사용하여 Instagram에 로그인하고 싶습니다.php instagram api login error

{"status":"fail","message":"Your version of Instagram is out of date. Please upgrade your app to log in to Instagram."} 

그리고 내 PHP 코드 :

function open($url,$post="") { 
$cookies = 'cookies.txt'; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     if ($post != "") { 
       curl_setopt($ch, CURLOPT_POST,1); 
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
     } 

     curl_setopt($ch, CURLOPT_USERAGENT, 'Instagram'); 
     curl_setopt($ch,CURLOPT_TIMEOUT, 50); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch,CURLOPT_REFERER, ""); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

     curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookies); 
     curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookies); 

     $data = curl_exec($ch); 
     curl_close($ch); 
     return $data; 
} 

    function _render_form($data) { 
     $t = ""; 
     foreach ($data as $k=>$v) { $t .= "&$k=$v";} 
     return str_replace("###&","","###".$t); 
    } 

function login($username, $password) { 
      $post = _render_form(array("username" => $username, "password" => $password, "device_id" => "MY_DEVICE_ID")); 
      $isi = open("https://instagram.com/api/v1/accounts/login/", $post); 
      echo $isi; die; 
    } 
$login = login('MY_USERNAME', 'MY_PASSWORD'); 

가 내 휴대 전화의 장치 ID에 장치 ID를 변경하지만 오류가 발생합니다. 그러나 문제는 해결되지 않았습니다 ... 어떤 아이디어?

+0

내 생각에 API의 구식 양식을 사용하고 있습니다. _current_ API. 서를 확인하고 코드가이를 준수하는지 확인하십시오. –

답변

0

Instagram은 더 이상 사용자 이름과 암호로 로그인하는 것을 지원하지 않습니다. 대신 인증이 필요한 요청을 수행하려면 use oAuth해야합니다.

this one과 같은 라이브러리를 사용하면 수동으로 구현하는 것보다 훨씬 쉽습니다.