1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE Problemy z łączenia z usługi Google API

Dyskusja w 'Hosting i domeny internetowe' rozpoczęta przez użytkownika guy, 4 Maj 2017.

  1. guy

    guy Początkujący

    Wiadomości:
    5
    Docenione treści:
    0
    Dzień dobry,

    Proszę o pomoc w sprawie łączenia do usługi API oferowanej przez Google. Mamy u nas na domenie stronę która łączy się do tej usługi aby autoryzować użytkowników. W tej chwili, na stronie pojawia się następny błąd : Warning: file_get_contents(https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=*token usunięty*): failed to open stream: Connection timed out in /index.php on line 133

    Na moim komputerze, domena "googleapis.com" odpowiada na pingi, jednak na serwerze Business Cloud Unlimited nie odpowiada na pingi.

    W załączniku wysyłam zrzuty ekranu pokazujące polecenie ping na moim komputerze i przez SSH na serwerze Business Cloud Unlimited

    Dziękuję uprzejmie

    Pozdrawiam

    ping_googleapis_lokalnie.PNG Lokalnie

    ping_googleapis_ssh.PNG Przez SSH
     
  2. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    Akurat ping nie ma tu znaczenia, bo po prostu od jakiegoś czasu pingowanie na zewnątrz nie działa w na hostingu home.pl (możesz pingować jedynie domeny utrzymywane na serwerch DNS w home.pl).

    Na moje komunikat wskazuje na brak połączenia z docelowym serwerem/adresem URL.
     
  3. guy

    guy Początkujący

    Wiadomości:
    5
    Docenione treści:
    0
    Dziękuję za odpowiedź. Jeśli kopiuję linka od błędu i to otwieram w przeglądarkę, widzę jakieś JSON z danymi o moim koncie, więc myślę że usługi Google działają poprawnie, ale nie rozumiem dlaczego moja strona nie może pobierać te dane jeśli ja mogę.
     
  4. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    Może być to efektem jakiejś blokady po stronie docelowego serwera.

    Wykonaj takie polecenie przez SSH z serwera:
    Kod:
    curl -I https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=*token usunięty*
    wstawiając dokładny swój adres.
    Jaki jest wynik?
     
    guy lubi to.
  5. guy

    guy Początkujący

    Wiadomości:
    5
    Docenione treści:
    0
    Po wykonanie takie polecenie przez SSH dostaję taki wynik:
    Kod:
    [1] 10413
    HTTP/1.1 401 Unauthorized
    Vary: X-Origin
    WWW-Authenticate: Bearer realm="https://accounts.google.com/"
    Content-Type: application/json; charset=UTF-8
    Date: Thu, 04 May 2017 22:56:43 GMT
    Expires: Thu, 04 May 2017 22:56:43 GMT
    Cache-Control: private, max-age=0
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    X-XSS-Protection: 1; mode=block
    Server: GSE
    Alt-Svc: quic=":443"; ma=2592000; v="37,36,35"
    Transfer-Encoding: chunked
    Accept-Ranges: none
    Vary: Origin,Accept-Encoding
    
    ^C
    [1]+  Done                    curl -I https://www.googleapis.com/oauth2/v1/useri                                                                                                             nfo?alt=json
    
     
  6. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    Wygląda raczej ok, ale musiałby się wypowiedzieć, ktoś kto również korzysta z tego mechanizmu.
     
  7. guy

    guy Początkujący

    Wiadomości:
    5
    Docenione treści:
    0
    Kiedy ja to otwieram na przeglądarkę dostaję odpowiedź z kod HTTP 200, jednak przez CURL dostaję kod 401, więc coś się różni mi się wydaje.
     
  8. casar

    casar Profesjonalista

    Wiadomości:
    507
    Docenione treści:
    135
    W przeglądarce autoryzujesz się do swojego konta google (wówczas dostajesz JSON), curl tego nie robi.
     
  9. guy

    guy Początkujący

    Wiadomości:
    5
    Docenione treści:
    0
    Tak, ale w takim przypadku dostaję JSON z wpisem "error". Ponadto, jest dziwne to że CURL nie zatrzymał się sam i musiałem wymusić zatrzymanie za pomocą CTRL + C.
     
  10. Mariusz

    Mariusz pomoc.home.pl Moderator forum

    Wiadomości:
    3 087
    Docenione treści:
    302
    @guy wystawiłem zgłoszenie (QA-40629) z konsultacją do naszych administratorów. Może uda mi się uzyskać i przekazać Tobie dodatkowe wskazówki. Proszę o cierpliwość.

    edit:

    Po wywołaniu 'curl -I' mamy w naglowkach info Unauthorized, co wskazywałoby na konieczność autoryzacji przy połączeniu z tym URL.

    W pomocy Google można znaleźć taki artykuł: https://developers.google.com/gdata/articles/using_cURL (sekcja authenticating), gdzie należy w curl podac dodatkowe parametry autoryzujace. Link ten prowadzi do dokumentacji odnośnie starego API, wiec informacje mogą być już nieaktualne, ale pewnie zasada działania nadal jest podobna.

    Co do samego skryptu PHP to pewnie trzeba autoryzowac sie uzywajac OAuth jak w przykladzie dostępnym tutaj: https://developers.google.com/api-client-library/php/auth/web-app

    Wygląda na to, że będzie wymagane przerobienie skryptu.
     

Poleć forum znajomym