我正在尝试使用Google表格加载项中的OAuth2连接到Salesforce。
var url = 'https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=' +
clientId + '&redirect_uri=' + redirectUri + '&display=popup' +
'&scope=full' + '&prompt=login';
redirectUri
是另一个Google Apps脚本WebApp URL。
现在,我需要将Salesforce返回的code
分享到我的Google表格插件,但无法找到解决方案。
请让我知道是否有更好的身份验证方法。
任何帮助或建议都会很棒。
简短回答
否,您无法在编辑器加载项中打开要在相同上下文中加载的子窗口。
说明
由于Google Apps脚本使用安全沙箱来清理用户应用程序内容,因此您将无法利用<iframe>
或同窗口资源加载。尽管可以在WebApp的同一窗口中加载目标资源,但不能在编辑器加载项中使用(在编辑器加载项的上下文中未设置allow-top-navigation
属性的sandbox
)。
[如果您接受,建议您将width
和height
以及top
和left
属性设置为居中或使用window.open()
将窗口移至侧边栏+,或者使用如果弹出窗口被阻止,则退回到链接。这至少将使UX的质量保持相对完整。
参考
如果您想更多地了解已有的限制和做法: