我正在编写一个需要从用户向系统管理员发送电子邮件的网络应用。要做到这一点,我正在使用谷歌的Gmail API。这需要授权。以下代码段在使用桌面时成功授权,但在移动设备上失败。
this.sendEmail = function(to, body, attachments, callback) {
_to = to;
_body = body;
_attachments = [attachments];
_callback = callback;
gapi.client.setApiKey('MY_API_KEY');
gapi.client.load('gmail', 'v1').then(_authorize);
}
function _authorize(){
var config = {
'client_id': MY_CLIENT_ID,
'scope': 'https://www.googleapis.com/auth/gmail.compose',
};
gapi.auth.authorize(config, _sendEmail);
}
function _sendEmail(){
// code to actually send my email
}
在移动设备上,它弹出一个新选项卡并提示用户登录,然后没有。它永远不会击中我的“_sendEmail”回调。如果用户已经登录,则只会弹出一个空白窗口(它仍然不会响应回调)。
如果我将“immediate:true”添加到配置对象,那么如果用户已经登录到他们的谷歌帐户,它会在移动设备上通过,但如果不是,则会失败。
我做错了什么或者这在移动设备上运行得不好?
由于