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 Lokalnie Przez SSH
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.
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ę.
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?
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
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.
W przeglądarce autoryzujesz się do swojego konta google (wówczas dostajesz JSON), curl tego nie robi.
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.
@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.