Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie do Gmail
Forum PHP.pl > Forum > PHP
glogu
Witam!

Chciałbym napisać skrypt, który zaloguje się do portalu gmail.com podając swoje dane a następnie pobierze zawartość strony wyświetlającej się po poprawnym zalogowaniu. Wiem, że powinno dać się to zrobić za pomocą biblioteki cURL, jednak nie udało mi się w nią wgłębić w wystarczający sposób. NA inne serwisy udało mi się zdalnie zalogować, ale na gmail nie moge ;/

Proszę o jakąś pomoc, albo chociaż linki gdzie możnaby takową uzyskać.
Pozdrawiam!
sowiq
Rzucę Ci dwa linki. Szczerze mówiąc nie zagłębiałem się zbytnio, bo już nie ta pora, ale może się przydać:

http://www.woyano.com/view/474/How-To-Access-Gmail-With-PHP

http://www.google.com/search?q=gmail+login+%2Bcurl+%2Bphp tongue.gif

ps. co do nieudanych prób logowania na Gmail - może nie masz zainstalowanej biblioteki ssl?
Cytat
And because GMailer always connects to Gmail via SSL, you may also need OpenSSL for CURL to talk SSL.
glogu
Ściągnąłem libgmailer i testuje przykladowy kod:
  1. <?php
  2. require_once("libgmailer.php");
  3.  
  4. $gmail_acc = "glogowsky2";
  5. $gmail_pwd = "****";
  6. $my_timezone = 0;
  7.  
  8. $gmailer = new GMailer();
  9.  
  10. if ($gmailer->created) 
  11. {
  12. $gmailer->setLoginInfo($gmail_acc, $gmail_pwd, $my_timezone);
  13.  
  14.  
  15. if ($gmailer->connect()) 
  16. {
  17.  
  18. $gmailer->fetchBox(GM_LABEL, "my_label", 0);
  19. $snapshot = $gmailer->getSnapshot(GM_LABEL);
  20. var_dump($snapshot->box_total);
  21. } else {
  22. die("Fail to connect because: ".$gmailer->lastActionStatus());
  23. }
  24. } else {
  25. die("Failed to create GMailer because: ".$gmailer->lastActionStatus());
  26. }
  27. ?>

Niestety ciągle zwraca NULL. Niby nie wyrzuca błędów do construct oraz connect żadnych, ale nie zwraca nic ciekawego :/ macie pomysł dlaczego?
mike
W opcjach poczty musisz pozwolić na logowanie z zewnątrz.
Zaloguj się do GMaila i poszukaj w settings.
glogu
Włączyłem IMAP Access i dalej to samo. W Settings nic odnośnie połączeń z zewnątrz nie znalazłem. Dodatkowo wyczaiłem kod błędu i zgodnie z dokumentacją brzi on:

Gmail redirect to login screen

blinksmiley.gif
mike
Dostajesz to bo tam pewnie są jakieś przekierowania po zalogowaniu. Musiałbyś prześledzić jak wyglądają żądania.
A co w ogóle chcesz pobrać po zalogowaniu? Bo może niepotrzebnie się logujesz do strony. Może po prostu zaloguj się do serwera pocztowego, jeśli chcesz wyciągać maila.
glogu
No w zasadzie to potrzebuje treści nieprzeczytanych mailów.
mike
Hmmm, to dużo łatwiej (nie znam tego libgmailer) zapiąć do tego bibliotekę imap z PHP.
Po prostu podłącz się pod serwer pocztowy a nie pod www.
oscar17
Tak jak mówią - do czytania maili wystarczy imap" title="Zobacz w manualu PHP" target="_manual.
Na dobry początek zarzucę ci kodem który wypisze ci wszystkie nieprzeczytane/niepobrane maile z twoje skrzynki na gmailu, ale nie ma problemu żeby je przeczytać:
  1. <?php
  2. $mailbox = '{pop.gmail.com:995/pop3/ssl}';
  3. $mailbox_username = 'user'; //login gmaila
  4. $mailbox_password = 'pass'; // hasło gmaila
  5.  
  6. if(!$mbox = imap_open ($mailbox, $mailbox_username, $mailbox_password)) die ("not mbox");
  7. if(!($headers = imap_headers($mbox))) die ("no headers");
  8. for($uid=1; $uid<=imap_num_msg($mbox);$uid++){
  9. $header = imap_header($mbox,$uid);
  10. echo "<li>$uid. ".$header->subject;
  11. //imap_setflag_full($mbox,$uid,'Deleted'); <- to zaznacza że była pobrana
  12.  
  13. }
  14. //imap_expunge($mbox); <- to usuwa zaznaczone (w googlu to nie działa, ale po tym nie pobierze ci więcej tej wiadomości
  15. ?>
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.