Acesse as conexões do google usando a API do google people

9

Gostaria de obter todas as conexões privadas do Google de um usuário conectado a partir do meu aplicativo. Ativei o Google People e as APIs do Google Plus. Eu configuro a chave da API de credenciais, ID do cliente & amp; segredo do cliente. A URL com a qual estou tentando buscar as conexões dos usuários é

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

Além disso, estou usando a biblioteca passport-google-oauth para obter os usuários access_token. Existe alguma coisa que me falta no URL acima?

Meu código de autenticação do Google é

    // 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: '/'
    }));
    
por Parth Vyas 03.03.2017 в 20:42
fonte

1 resposta

2

Você não mencionou o erro que está recebendo, mas olhando a URL que está usando, posso lhe dizer algumas coisas.

people.connections.list acessam dados de usuários particulares. Por isso, você não precisa adicionar a Chave que é usada apenas para acessar dados públicos. No entanto, ter ambos não deve resultar em qualquer mensagem de erro.

Eu testei a solicitação que você está enviando e ela funciona. No entanto, essa solicitação exige que você tenha autenticado com pelo menos um dos .

  

link Solicita que seu aplicativo seja   dado acesso de leitura e escrita aos contatos no arquivo autenticado   contatos do Google do usuário.    link Solicita que seu   aplicativo receber acesso de leitura aos contatos no usuário autenticado   Contatos do Google.

Se você não tiver, receberá uma mensagem de erro sem acesso.

{
  "error": {
    "code": 403,
    "message": "Request had insufficient authentication scopes.",
    "status": "PERMISSION_DENIED"
  }
}
    
por DaImTo 15.03.2017 / 09:06
fonte