Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> logowanie do Gmail
glogu
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.


Ten post edytował sowiq 3.07.2008, 03:13:23
Go to the top of the page
+Quote Post
glogu
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


Ś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?
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


W opcjach poczty musisz pozwolić na logowanie z zewnątrz.
Zaloguj się do GMaila i poszukaj w settings.
Go to the top of the page
+Quote Post
glogu
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
glogu
post
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


No w zasadzie to potrzebuje treści nieprzeczytanych mailów.
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
oscar17
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:57