Potrzebny mi jest skrypt, który automatycznie zczytuje API key dla google map. Nie da się jednak tego zrobić nie logując się do systemu google, więc samo fread, czy get_file_contents nie wystarczy. Postanowiłem poduczyć się biblioteki CURL, aby zalogować się do google. Oto funkcje, które miały się logować i ściągać dowolną stronę po zalogowaniu:
<?php function curl_login($url,$data){ $login = curl_init(); curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); curl_setopt($login, CURLOPT_TIMEOUT, 40); curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($login, CURLOPT_URL, $url); curl_setopt($login, CURLOPT_HEADER, TRUE); curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($login, CURLOPT_POST, TRUE); curl_setopt($login, CURLOPT_POSTFIELDS, $data); return curl_exec ($login); // execute the curl command curl_close ($login); } function curl_grab_page($site){ $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_URL, $site); return curl_exec ($ch); // execute the curl command curl_close ($ch); } ?>
Wywołanie tych funkcji
<?php $string ='continue=http://maps.google.com/maps/api_signup%3Furl%3Dhttp%253A%252F%252Fantyczne.com.pl%252F&followup=http://maps.google.com/maps/api_signup%3Furl%3Dhttp%253A%252F%252Fantyczne.com.pl%252F&Email=besstt@gmail.com&Passwd=haslo&PersistentCookie=yes&rmShown=1&null=Logga+In'; curl_login('https://www.google.com/accounts/Login',$string); ?>
Okazuje się jednak, że to niedziała :/ Wiecie może jaka jest tego przyczyna? Może ktoś już pisał funkcję logującą do google i mógłby się nią podzielić?