Php Ve Curl Sıkıntısı.
-
Instagram api ile veri çekme konusunda birkaç birşey deniyorum. Birçok alanı hallettim ancak Profilleri çektirme konusunda tıkandım kaldım.
Instagram api, profil çekmek için kullanıcı ID kullanıyor.
Böyle olunca da tek sayfada çift curl çalıştırmam gerekiyor, ilk curl kullanıcı adından> kullanıcı id oluyor,
ikinci curl'da id alıp hesap bilgilerini getiriyor.
localde çalışıyor, hostta çalışmıyor.
Kod kaynaklı mı , sunucu kaynaklı mı bir türlü işin içinden çıkamadım. Keza localde çalıştığına göre Sunucu kaynaklı olabilir.
Fikirleriniz, önerileriniz lazım kardeşler. İncelemek isteyen olursa;
<!DOCTYPE HTML> <html lang="en-US"> <title>Instagrama Resim Arşivleyici </title> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .kutu{width:260px;height:260px;background:white;float:left;margin-left:5px;} .temiz{clear:both;} </style> </head> <body> <?php $ins_key="access_token="; // curl veri çekme fonksiyonu function getir($url) { $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_HEADER,false); curl_setopt($curl, CURLOPT_NOBODY, FALSE); curl_setopt($curl, CURLOPT_REFERER,""); curl_setopt($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl,CURLOPT_CONNECTTIMEOUT, 10); // bunu 23.09.2013 te ekledim google mail getirde takılma için $data=curl_exec($curl); curl_close($curl); return $data; } // curl veri çekme fonksiyonu // Karakterten Kaç Tane Var Sayar function kactane($string,$bulunacak,$yoksa=0){ $array = explode($bulunacak,$string); if($array)return count($array)-1;else return $yoksa; } // veritabanı bağlantısı set_time_limit(0); $host="localhost"; $vt_adi="instagram"; $kullanici="instagram"; $sifre="instagram"; $db = @mysql_connect($host,$kullanici,$sifre); if(!$db){ echo "mysql sunucu kapalı veya hesap bilgileri yanlış"; exit; } $test=@mysql_select_db($vt_adi,$db); if(!$test){ echo "Veritabanı adı yanlış"; exit; } @mysql_query("set names utf8_turkish_ci"); @mysql_query("SET NAMES 'utf8'"); @mysql_query("SET CHARACTER SET 'utf8'"); @mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'"); @mysql_query("set names cp1251_general_ci"); if($_SERVER["HTTP_USER_AGENT"]==""){ exit(); } // veritabanı bağlantısı $profil=$_GET['profil']; if (empty($profil)) { $botsorgu = mysql_query("SELECT * FROM ins_cekilecekler where sira='0' order by rand() ") or die(mysql_error()); $basive = mysql_fetch_array($botsorgu); $botid=$basive['uyeno']; $ins_id=$basive['ins_Id']; $nick=$basive['nick']; if (empty($nick)) { $sifirla = mysql_query("update ins_cekilecekler set sira='0'"); echo '<meta http-equiv="refresh" content="5">'; } if(empty($profil)) { mysql_query("update etiketler set durum='0' where durum='1' "); echo '<meta http-equiv="refresh" content="5;URL=index.php">'; } } else { $profil=$_GET['profil']; $profils=urlencode($profil); $link='https://api.instagram.com/v1/users/search?q='.$profils.'&'.$ins_key.'; '; $getir=getir($link); $parse=json_decode($getir); $ins_id=$parse->data[0]->id; } $zaman=time(); // https://apigee.com/embed/console/instagram $link='https://api.instagram.com/v1/users/'.$ins_id.'/media/recent/?'.$ins_key.''; $getir=getir($link); $parse=json_decode($getir); $sayi=kactane($getir,"location")-1; For($i=0; $i<=$sayi; $i++) { $username=$parse->data[$i]->user->username; $profil_resim=$parse->data[$i]->user->profile_picture; $resimk=$parse->data[$i]->images->thumbnail->url; $resimb=$parse->data[$i]->images->standard_resolution->url; $format=$parse->data[$i]->type; $aciklama=$parse->data[$i]->caption->text; $fins_id=$parse->data[$i]->id; $resimidsi=explode('_',$fins_id); $medyaid=$resimidsi[0]; $durumsorgula = mysql_query("SELECT * FROM `ins_arsiv` where resimid='$medyaid' ") or die(mysql_error()); $sonuc = mysql_fetch_array($durumsorgula); if (empty($sonuc)) { $file= fopen ('ins_resim/'.$medyaid.'.jpg', 'w+'); $curl = curl_init($resimb); curl_setopt($curl, CURLOPT_TIMEOUT, 50); curl_setopt($curl, CURLOPT_FILE, $file); curl_exec($curl); curl_close($curl); fclose($file); echo '<div class="kutu"><img border="0" src="'.$resimk.'" title='.$nick.'></div>'; mysql_query("INSERT INTO ins_arsiv (fenomen_id , username, resimid , aciklama, durum , aktiflikzamani) VALUES ('$ins_id','$username', '$medyaid', '$aciklama', '0', '$zaman' )"); } flush(); // Tamponu temizle. ob_flush(); } echo '<div class="kutu"><img border="0" src="'.$profil_resim.'" title='.$nick.'><br><b>'.$nick.'</b></div>'; echo '<div class="temiz"></div>'; $beklemeyeal = mysql_query("update ins_cekilecekler set sira='1' where uyeno='$botid' "); echo '<meta http-equiv="refresh" content="5">'; ?> </body> </html>
-
cankol bunu yazdı
Instagram api ile veri çekme konusunda birkaç birşey deniyorum. Birçok alanı hallettim ancak Profilleri çektirme konusunda tıkandım kaldım.
Instagram api, profil çekmek için kullanıcı ID kullanıyor.
Böyle olunca da tek sayfada çift curl çalıştırmam gerekiyor, ilk curl kullanıcı adından> kullanıcı id oluyor,
ikinci curl'da id alıp hesap bilgilerini getiriyor.
localde çalışıyor, hostta çalışmıyor.
Kod kaynaklı mı , sunucu kaynaklı mı bir türlü işin içinden çıkamadım. Keza localde çalıştığına göre Sunucu kaynaklı olabilir.
Fikirleriniz, önerileriniz lazım kardeşler. İncelemek isteyen olursa;
Instagrama Resim Arşivleyici
Hem konu up olsun hemde ne amaçlı topluyorsun merak ettim
-
-
@kaptan hocam api işlerine merak sardım bu ara, instagram daha basit geldi bu açıdan, zaten muazzam bir veri var çekmek için harddisk tarlası lazım :)
--
sunucu da curl mevcut info çıktısında da geliyor. ama bahsettiğim gibi çalışmıyor bu kısımda. mesela başka veriyi çekiyor ama bu sayfada çekmiyor. hani curl çalışıyor ama yalnızca bu sayfada çalışmıyor.
ayrıca curl'a dizin yolunu ısrarla her yolu deneyerek göstermeme rağmen, bi dizine veri kaydediyor ama bir alt dizine kaydetmiyor.
anlayamadım gitti, sunucu da mı sıkıntı kod da birşey mi kaçırıyorum çözemedim.
-
cankol bunu yazdı
@kaptan hocam api işlerine merak sardım bu ara, instagram daha basit geldi bu açıdan, zaten muazzam bir veri var çekmek için harddisk tarlası lazım :)
--
sunucu da curl mevcut info çıktısında da geliyor. ama bahsettiğim gibi çalışmıyor bu kısımda. mesela başka veriyi çekiyor ama bu sayfada çekmiyor. hani curl çalışıyor ama yalnızca bu sayfada çalışmıyor.
ayrıca curl'a dizin yolunu ısrarla her yolu deneyerek göstermeme rağmen, bi dizine veri kaydediyor ama bir alt dizine kaydetmiyor.
anlayamadım gitti, sunucu da mı sıkıntı kod da birşey mi kaçırıyorum çözemedim.
Instagram, sunucun IP'sini banlamış olabilir. Yolladığın isteklerden gelen ham veriye bi bak işlemeden, ne yazıyor durum nedir?
Bu arada açıkça kendi instagram access_token'ını vermişsin maşallah ne bu güven?
Millet senin adına yorum atsın, like atsın, follow etsin istiyorsun sanırım? :)
Kaldır bence bi an önce.
-
Haha :) hallettim hocam :)
Yok instagramdan sonuç geliyor çalışıyor gayet güzel ancak belirttiğim kısım olmuyor :)
-
@pSkpt access_token ile like,follow artık yapılmıyor diye biliyorum hocam yoksa yapılıyor mu?