我正在构建一个包含两个步骤的Gmail插件:
使用Gmail帐户授权。
进行身份验证以访问我的服务。
示例:与Trello插件相同:
当我点击按钮登录时,登录表单如下所示:
我想在登录后收到数据回复。我已阅读ActionResponse
文档,但无法找到解决方案。
我如何收到数据回复?
答案 0 :(得分:2)
我相信,您正在尝试授权自定义服务。 为了授权像trello这样的自定义服务,您必须为它配置oAuth。
在gmail附加组件中创建oAuth服务以请求访问trello。 用户完成oAuth流后,您可以使用oAuth服务获取访问令牌。使用此令牌可在需要时访问端点。
参考example
编辑1:
行动回复 用法如下:
//action
var onTestBtnClick = CardService.newAction().setFunctionName('onTestBtnClick');
//Button
var testBtn = CardService.newTextButton().setText('test').setOnClickAction(onTestBtnClick);
//action handler
function onTestBtnClick(){
//do some action and finally open google.com
return CardService.newActionResponseBuilder()
.setOpenLink(CardService.newOpenLink()
.setUrl("https://www.google.com"))
.build();
}

答案 1 :(得分:1)
您需要为服务器(第三方服务)设置单独的身份验证页面。用户必须经过您页面上的身份验证过程。用户成功验证您的页面后,您需要将其重定向到redirect_uri
,该redirect_uri
作为URL参数从附加组件传递到您的页面。 authcallback
处的脚本将命中您的令牌URL端点,您可以在启动附加组件身份验证服务时指定该端点。如果令牌URL端点返回有效响应,则会触发附加代码中的table.downloadToTab("json");
函数,该函数会缓存会话并让用户继续使用附加组件。
下面是整个流程的示意图:
请查看this library Google提供的实施方法。
还结帐my post,其中更详细地介绍了如何将您的第三方服务连接到Gmail插件
答案 2 :(得分:0)
请参阅此文档https://isamatov.com/gmail-add-on-connect-non-google-service/
这将为您提供答案。
您需要输入
中的登录页面网址setAuthorizationBaseUrl('https://domain/login.php')
您要接收的响应需要在下面的URL中设置
setTokenUrl('https://domain/response.php')
function getService() {
return OAuth2.createService('Demo Auth')
.setAuthorizationBaseUrl('https://domain/json.php')
.setTokenUrl('https://domain/token.php')
}