Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [cURL/PHP] Logowanie na konto Google
Forum PHP.pl > Forum > PHP
miki3475
Witam piszę właśnie skrypt logujący się na konto YT i pobierający prywatną tracklistę. W każdym razie - potrzebuję się zalogować na moje konto Google'a z czym mam ogromny problem.

Po wywołaniu skryptu Google odpowiada błędnem:
Cytat
Your browser's cookie functionality is turned off. Please turn it on.


  1. <?php
  2. $email = "login";
  3. $password = "pass";
  4. $cookiefile = "cookie.txt";
  5.  
  6. function curl_get( $curl, $url, $cookiefile) {
  7. curl_setopt($curl, CURLOPT_URL, $url);
  8. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
  9. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  10. curl_setopt($curl, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" );
  11. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiefile);
  12. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
  13. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  14. $data = curl_exec($curl);
  15. return $data;
  16. }
  17.  
  18. function curl_post( $curl, $url, $cookiefile, $post) {
  19. curl_setopt($curl, CURLOPT_URL, $url);
  20. curl_setopt($curl, CURLOPT_POST, 1);
  21. curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
  22. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
  23. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  24. curl_setopt($curl, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" );
  25. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiefile);
  26. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
  27. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  28. $data = curl_exec($curl);
  29. return $data;
  30. }
  31.  
  32. $curl = curl_init( );
  33.  
  34.  
  35. $data = curl_get( $curl, "https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Den_US%26next%3D%252Findex&hl=en_US&ltmpl=sso", $cookiefile);
  36.  
  37. preg_match('/name="GALX"\s*value="(.*?)"/', $data, $galx);
  38. preg_match('/name="dsh" id="dsh"\s*value="(.*?)"/', $data, $dsh);
  39.  
  40. // logowanie
  41. $data = curl_post( $curl, "https://www.google.com/accounts/ServiceLoginAuth", $cookiefile, "ltmpl=sso&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Den_US%26next%3D%252Findex&service=youtube&uilel=3&dsh=$dsh[1]&ltmpl=sso&hl=en_US&ltmpl=sso&timeStmp=&secTok=&GALX=$galx[1]&Email=$email&Passwd=$password&PersistentCookie=yes&rmShown=1&signIn=Sign+in&asts=");
  42.  
  43. $data = curl_get( $curl, "https://www.google.com/accounts/CheckCookie?continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Den_US%26next%3D%252Findex&hl=en_US&service=youtube&ltmpl=sso&chtml=LoginDoneHtml", $cookiefile);
  44. echo $data;
  45.  
  46. ?>


Z góry dzięki za pomoc,
Mikołaj
cudny
Może php nie ma prawa do zapisu w ustawionej ścieżce ?
miki3475
Cookies tworzą się poprawnie.
Cytat
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.google.com FALSE /accounts/ TRUE 0 GoogleAccountsLocale_session en
#HttpOnly_www.google.com FALSE /accounts TRUE 1417124419 GAPS 1:trZqtd92iOb-BqB42u9kvNJzsQteqQ:53zVHSgYgCeoaNul

Rzecz się rozchodzi o jakieś zabezpieczenie googla czy coś tego typu.
cudny
Nie wiem w czym problem, trzeba by debugować.
A nie możesz użyć ich API ?
Nie dość, że będzie wszystko działać, to jeszcze logowanie by oAuth
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.