我有一个应用程序使用Google JS API以oauth登录用户,然后从他们的gmail acct等获取信息。该应用程序在网上工作正常,但有问题与Trigger.io(Android和iOS版本)。脚本通过google js api在trigger.io应用程序
<script src="https://apis.google.com/js/client.js?onload=ginit"></script>
加载,然后ginit
函数调用gapi
客户通过client.js加载:
if (!!gapi) {
gapi.client.setApiKey(GoogleApp.apiKey);
}
在Android上,gapi
存在,但不知何故gapi.client
不,导致错误。
在iOS上,库加载工作正常,但随后调用gapi.auth.authorize
(这可能会导致打开新窗口)会导致Webview错误:Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed."
我正在使用子浏览器和跨域ajax模块,但当然无法改变Google库实现调用的方式。我把代码忽略每this和类似的错误,但仍然在auth不起作用:
try {
gapi.auth.authorize({client_id: GoogleApp.clientId, scope: GoogleApp.scopes, response_type: 'token id_token', immediate: false, approval_prompt: 'force'}, gHandleAuthResult);
} catch (e) {
if (e.indexOf('NSURLErrorCancelled') === -1) { // iOS error on cancelled window, ignore
throw e;
}
}
有没有使用谷歌API从Trigger.io应用更好的办法?或者使用Google API的Trigger.io应用的示例?
我的下一个问题可能会与确定js的起源,which is already covered in another post,但还没有答案。感谢您的帮助!