我正在编写一个需要从用户向系统管理员发送电子邮件的网络应用程序。为此,我使用了谷歌的 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”回调。如果用户已经登录,它只会弹出一个空白窗口(它仍然永远不会点击回调)。
如果我将“立即:真”添加到配置对象,那么如果用户已经登录到他们的谷歌帐户,它会在移动设备上通过,但如果他们没有登录则会失败。
我做错了什么还是这在移动设备上效果不佳?
谢谢