9

Chciałbym pobrać wszystkie prywatne połączenia google użytkownika zalogowanego z mojej aplikacji. Włączyłem usługę Google People i interfejsy API Google Plus. Ustawiam klucz API poświadczeń, identyfikator klienta: &. URL, z którym próbuję sprowadzić połączenia użytkowników jestUzyskaj dostęp do połączeń google za pomocą Google People API

https://people.googleapis.com/v1/people/me/connections?fields=connections&key=api_key&access_token=access_token 

Również używam biblioteki paszportu-google-OAuth, aby użytkownicy access_token. Czy jest coś, czego mi brakuje w powyższym adresie URL.

Moje google kod auth jest

// send to google to do the authentication 
    // profile gets us their basic information including their name 
    // email gets their emails 
    app.get('/auth/google', passport.authenticate('google', { 
     scope: ['profile', 'email','https://www.googleapis.com/auth/contacts.readonly', 'https://www.googleapis.com/auth/contacts'] 
    })); 

    // the callback after google has authenticated the user 
    app.get('/auth/google/callback', 
    passport.authenticate('google', { 
     successRedirect: '/profile', 
     failureRedirect: '/' 
    })); 

Odpowiedz

2

Nie wspomniano, jakie błędy są coraz ale patrząc na URL używasz mogę powiedzieć kilka rzeczy.

people.connections.list dostęp prywatnych danych użytkownika. Nie musisz więc dodawać klucza, który jest właśnie używany do uzyskiwania dostępu do publicznych danych. Jednak posiadanie obu nie powinno spowodować żadnego komunikatu o błędzie.

Przetestowałem wysłany wniosek i działa, jednak żądanie to wymaga uwierzytelnienia z co najmniej jednym z connections scopes.

https://www.googleapis.com/auth/contacts Wnioski że aplikacja być podano odczytu i zapisu do kontaktów w uwierzytelnionym użytkownika Kontaktów Google. https://www.googleapis.com/auth/contacts.readonly Żąda, aby Twoja aplikacja otrzymywała dostęp do odczytu do kontaktów w kontaktach Google użytkownika uwierzytelnionego użytkownika .

Jeśli nie, pojawi się komunikat o błędzie "Brak dostępu".

{ 
    "error": { 
    "code": 403, 
    "message": "Request had insufficient authentication scopes.", 
    "status": "PERMISSION_DENIED" 
    } 
} 
+0

OK. Mam klucz do API. Ale po przejściu przez moduł access_token pojawia się następujący błąd: ** Żądanie nie zawiera wymaganego poświadczenia uwierzytelnienia. Oczekiwano, że OAuth 2 token google people api **. Korzystam z pakietu google-passport-oauth, aby uzyskać token użytkownika i google-api-nodejs-client, aby uzyskać dostęp do interfejsu API dla google –

+0

@ParthVyas, jeśli masz token dostępu, spróbuj użyć go jako nagłówka swojej prośby (być może 'Authorization:" Bearer "+ accessToken') – BNK

+1

@BNK nie musisz tego robić, sczepiając & access_token = na końcu żądania robisz to samo. – DaImTo

Powiązane problemy