使用javascript和GMail API验证用户时出现问题
我正在学习javascript和API,我正在练习使用Gmail。我在javascript网页中使用Gmail进行身份验证 我让它工作,但我试图控制台记录用户的电子邮件后,他们的身份验证。我尝试了很多事情,但都没有成功 当用户单击按钮使用javascript和GMail API验证用户时出现问题,javascript,email,oauth-2.0,gmail,gmail-api,Javascript,Email,Oauth 2.0,Gmail,Gmail Api,我正在学习javascript和API,我正在练习使用Gmail。我在javascript网页中使用Gmail进行身份验证 我让它工作,但我试图控制台记录用户的电子邮件后,他们的身份验证。我尝试了很多事情,但都没有成功 当用户单击按钮handleAuthClick(事件)打开一个iframe并启动身份验证过程时 如何将电子邮件地址记录到console.log中? <script type="text/javascript"> var CLIENT_ID = '123.apps
handleAuthClick(事件)
打开一个iframe并启动身份验证过程时
如何将电子邮件地址记录到console.log中?
<script type="text/javascript">
var CLIENT_ID = '123.apps.googleusercontent.com';
var SCOPES = ['https://mail.google.com/'];
/**
* Check if current user has authorized this application.
*/
function checkAuth() {
gapi.auth.authorize(
{
'client_id': CLIENT_ID,
'scope': SCOPES.join(' '),
'immediate': true
}, handleAuthResult);
}
function listMessages(userId, query, callback) {
var getPageOfMessages = function(request, result) {
request.execute(function(resp) {
result = result.concat(resp.messages);
var nextPageToken = resp.nextPageToken;
if (nextPageToken) {
request = gapi.client.gmail.users.messages.list({
'userId': userId,
'pageToken': nextPageToken,
'q': query
});
getPageOfMessages(request, result);
console.log("hey its done" + result)
} else {
callback(result);
}
});
};
var initialRequest = gapi.client.gmail.users.messages.list({
'userId': userId,
'q': query
});
getPageOfMessages(initialRequest, []);
}
/**
* Handle response from authorization server.
*
* @param {Object} authResult Authorization result.
*/
function handleAuthResult(authResult) {
var authorizeDiv = document.getElementById('authorize-div');
if (authResult && !authResult.error) {
// Hide auth UI, then load client library.
//authorizeDiv.style.display = 'none';
loadGmailApi();
console.log(resp.email);
} else {
// Show auth UI, allowing the user to initiate authorization by
// clicking authorize button.
//authorizeDiv.style.display = 'inline';
console.log("hey form else")
}
}
/**
* Initiate auth flow in response to user clicking authorize button.
*
* @param {Event} event Button click event.
*/
function handleAuthClick(event) {
gapi.auth.authorize(
{client_id: CLIENT_ID, scope: SCOPES, immediate: false},
handleAuthResult);
listMessages('me',"is:unread");// this returns big list of objects yee haw
console.log("hey there from handleAuthClick");
return false;
}
/**
* Load Gmail API client library. List labels once client library
* is loaded.
*/
function loadGmailApi() {
gapi.client.load('gmail', 'v1', listLabels);
}
/**
* Print all Labels in the authorized user's inbox. If no labels
* are found an appropriate message is printed.
*/
function listLabels() {
var request = gapi.client.gmail.users.labels.list({
'userId': 'me'
});
request.execute(function(resp) {
var labels = resp.labels;
appendPre('Labels:');
if (labels && labels.length > 0) {
for (i = 0; i < labels.length; i++) {
var label = labels[i];
appendPre(label.name)
cosnole.log(label.name)
}
} else {
appendPre('No Labels found.');
}
});
}
function appendPre(message) {
var pre = document.getElementById('output');
var textContent = document.createTextNode(message + '\n');
pre.appendChild(textContent);
}
</script>
var CLIENT_ID='123.apps.googleusercontent.com';
变量作用域=['https://mail.google.com/'];
/**
*检查当前用户是否已授权此应用程序。
*/
函数checkAuth(){
gapi.auth.authorize(
{
“客户id”:客户id,
“scope”:SCOPES.join(“”),
“立即”:真
},handleAuthResult);
}
函数列表消息(用户ID、查询、回调){
var getPageOfMessages=函数(请求、结果){
请求执行(功能(resp){
结果=result.concat(响应消息);
var nextPageToken=resp.nextPageToken;
如果(下一步){
请求=gapi.client.gmail.users.messages.list({
“userId”:userId,
“pageToken”:下一个GetToken,
“q”:查询
});
getPageOfMessages(请求、结果);
log(“hey its done”+结果)
}否则{
回调(结果);
}
});
};
var initialRequest=gapi.client.gmail.users.messages.list({
“userId”:userId,
“q”:查询
});
getPageOfMessages(initialRequest,[]);
}
/**
*处理来自授权服务器的响应。
*
*@param{Object}authResult授权结果。
*/
函数handleAuthResult(authResult){
var authorizeDiv=document.getElementById('authorized-div');
if(authResult&!authResult.error){
//隐藏身份验证UI,然后加载客户端库。
//authorizeDiv.style.display='none';
loadGmailApi();
控制台日志(分别为电子邮件);
}否则{
//显示授权UI,允许用户通过
//单击“授权”按钮。
//authorizeDiv.style.display='inline';
log(“hey form else”)
}
}
/**
*响应用户单击“授权”按钮,启动身份验证流。
*
*@param{Event}Event按钮单击事件。
*/
函数handleAuthClick(事件){
gapi.auth.authorize(
{client_id:client_id,scope:SCOPES,immediate:false},
手工(结果);
listMessages('me',“is:unread”);//返回一个大的对象列表yee-haw
log(“从handleAuthClick看这里”);
返回false;
}
/**
*加载Gmail API客户端库。在客户端库中列出标签
*已加载。
*/
函数loadGmailApi(){
load('gmail','v1',listLabels);
}
/**
*打印授权用户收件箱中的所有标签。如果没有标签
*如果找到,则会打印相应的消息。
*/
函数listLabels(){
var request=gapi.client.gmail.users.labels.list({
“userId”:“我”
});
请求执行(功能(resp){
var标签=相应标签;
appendPre('标签:');
如果(标签和标签长度>0){
对于(i=0;i
我真的不明白你在哪里试图控制电子邮件地址?授权后,转到回调函数“handleAuthResult”,然后在函数“loadGmailApi”中加载gmail API,在此行之后:
gapi.client.load('gmail', 'v1', listLabels);
您可以通过gapi.auth2.BasicProfile