Witam,
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:
  1. <?php
  2. function curl_login($url,$data){
  3. $fp = fopen("cookie.txt", "w");
  4. fclose($fp);
  5. $login = curl_init();
  6. curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
  7. curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
  8.  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");
  9. curl_setopt($login, CURLOPT_TIMEOUT, 40);
  10. curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
  11.  
  12. curl_setopt($login, CURLOPT_URL, $url);
  13. curl_setopt($login, CURLOPT_HEADER, TRUE);
  14. curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  15. curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
  16. curl_setopt($login, CURLOPT_POST, TRUE);
  17. curl_setopt($login, CURLOPT_POSTFIELDS, $data);
  18. ob_start(); // prevent any output
  19. return curl_exec ($login); // execute the curl command
  20. ob_end_clean(); // stop preventing output
  21. curl_close ($login);
  22. unset($login);
  23. }
  24.  
  25. function curl_grab_page($site){
  26. $ch = curl_init();
  27. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  28. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  29. curl_setopt($ch, CURLOPT_URL, $site);
  30. ob_start(); // prevent any output
  31. return curl_exec ($ch); // execute the curl command
  32. ob_end_clean(); // stop preventing output
  33. curl_close ($ch);
  34. }
  35. ?>


Wywołanie tych funkcji
  1. <?php
  2. $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';
  3. curl_login('https://www.google.com/accounts/Login',$string);
  4. echo curl_grab_page('http://maps.google.com/maps/api_signup?url=http%3A%2F%2Fantyczne.com.pl%2F');
  5. ?>


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ć?