【问题标题】:Get user data Gmail API - JS获取用户数据 Gmail API - JS
【发布时间】:2019-08-07 16:27:46
【问题描述】:

我正在尝试对用户进行身份验证并获取用户数据,例如姓名和电子邮件。 我正在关注此处google 的文档。 这是我的身份验证代码:

function handleClientLoad() {
    gapi.load('client:auth2', initClient);
}

function initClient() {

// Array of API discovery doc URLs for APIs used by the quickstart
var DISCOVERY_DOCS = 
["https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"];

// Authorization scopes required by the API; multiple scopes can be
// included, separated by spaces.
var SCOPES = 'https://www.googleapis.com/auth/gmail.readonly';

    gapi.client.init({
        apiKey: API_KEY,
        clientId: CLIENT_ID,
        discoveryDocs: DISCOVERY_DOCS,
        scope: SCOPES
    }).then(function (data) {
    }, function(error) {
    });
}

当用户点击按钮时:

    if(!gapi.auth2.getAuthInstance().isSignedIn.get()){
        gapi.auth2.getAuthInstance().signIn();
    }

// user IS authenticated here
    var profile = gapi.auth2.getAuthInstance().currentUser.get();
    console.log('Email: ' + profile.getEmail());

当我console.log(gapi.auth2) 时,我看到我有函数BasicProfile(),但如果我使用gapi.auth2.BasicProfile().getEmail(),我会收到此错误:

cb=gapi.loaded_0:219 Uncaught TypeError: Cannot read property 'sub' of null 在 Object.PG [as BasicProfile] (cb=gapi.loaded_0:219)

【问题讨论】:

    标签: javascript google-app-engine gmail-api


    【解决方案1】:

    一种解决方案:

    // The user is authenticated here
        gapi.client.gmail.users.getProfile({
            'userId': 'me'
        }).then(function(response) {
           console.log(response);
        });
    

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 2019-01-03
      • 1970-01-01
      • 2016-09-20
      • 2016-12-08
      • 2020-09-02
      • 2023-01-13
      • 1970-01-01
      • 2010-09-10
      相关资源
      最近更新 更多