9

我想獲取從我的應用登錄的用戶的所有谷歌私人連接。 我已啓用Google人員和Google Plus API。我設置了證書API密鑰,客戶端密碼爲&。與我試圖獲取用戶的連接的URL是使用谷歌人訪問谷歌連接API

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

另外,我使用的庫護照谷歌-的OAuth,以獲得用戶ACCESS_TOKEN。在上面的網址中是否有任何缺少的內容?

我的谷歌授權碼是

// 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: '/' 
    })); 

回答

2

你沒有提到你做了什麼錯誤,但通過查看網址使用的是我可以告訴你一些事情。

people.connections.list訪問私人用戶數據。因此,對於您不需要添加僅用於訪問公共數據的Key。但是,兩者都不應該導致任何錯誤消息。

我已測試過您發送的請求,但它確實有效,但此請求要求您至少已通過connections scopes中的一個驗證。

https://www.googleapis.com/auth/contacts請求您的應用程序是 定的讀取和寫入訪問的認證 用戶的谷歌通訊錄中的聯繫人。 https://www.googleapis.com/auth/contacts.readonly請求您的 應用被授予讀取訪問經過身份驗證的用戶的 Google聯繫人中的聯繫人的權限。

如果你還沒有,那麼你會得到一個無法訪問的錯誤消息。

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

好的。我有API關鍵的東西。但是,通過access_token,我得到以下錯誤:**請求缺少必需的身份驗證憑據。期望的OAuth 2訪問令牌谷歌人api **。我正在使用google-passport-oauth軟件包來獲取用戶令牌和google-api-nodejs-client來訪問Google的人員API –

+0

@ParthVyas如果您有訪問令牌,請嘗試使用它作爲請求的標題(也許'授權:「持證人」+ accessToken') – BNK

+1

@BNK你不需要通過加上&access_token =做到這一點,在請求結束時,你正在做同樣的事情。 – DaImTo