我想使用API登录instagram。但我错了:
{"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。但问题没有解决..。有什么想法吗?
发布于 2014-06-16 00:31:32
Instagram不再支持用用户名和密码登录。相反,您应该使用使用oAuth来执行需要身份验证的请求。
使用像这一个这样的库比手动实现要容易得多。
https://stackoverflow.com/questions/24234871
复制相似问题