通过本地HTTP端点运行Google Workspace插件



我试图用另一种语言开发一个工作区插件,但我完全被这个问题卡住了。我的附加组件似乎没有调用本地服务器端点。我得到以下错误消息:";无法加载内容(请参见屏幕截图https://ibb.co/0VJHqJh)&";。此外,我可以在服务器上清楚地看到,我的端点没有被调用。

Workspace插件是否支持本地http端点?

目前,我有:

  • 上运行的Fastapi服务器http://127.0.0.1:8000具有多个端点
  • 每个端点返回Json CardService。这里是一个基本的端点示例:
@root_router.get('/homepage', response_class=JSONResponse)
async def homepage(event: object):
print(event)
# return json.dumps(BASIC_CARD)
# return BASIC_CARD
return renderAction

@root_router.post("/homepage2", response_class=JSONResponse)
async def homepage2(event: object):
print(event)
return renderAction
  • 我的加载项与以下部署文件一起部署和安装
{
"oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute",
"https://www.googleapis.com/auth/gmail.metadata",
"https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/script.locale",
"https://www.googleapis.com/auth/script.scriptapp",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.addons.metadata.readonly"
"https://www.googleapis.com/auth/documents.currentonly",
"https://www.googleapis.com/auth/spreadsheets.currentonly",
"https://www.googleapis.com/auth/presentations.currentonly"],
"addOns": {
"common": {
"name": "My HTTP Add-on",
"logoUrl": "https://fonts.gstatic.com/s/i/googlematerialicons/markunread_mailbox/v6/black-24dp/1x/gm_markunread_mailbox_black_24dp.png",
"homepageTrigger": {
"runFunction": "http://127.0.0.1:8000/homepage"
},
"openLinkUrlPrefixes": ["http://127.0.0.1:8000/homepage"]
},
"gmail": {},
"drive": {},
"calendar": {}
}
}

提前感谢您的反馈!

否,因为加载项在谷歌服务器上运行,并且它们有自己的"本地端点";。换句话说,http://127.0.0.1指向运行附加组件的服务器,而不是您的机器。

请记住,homepageTrigger.runFunction的值不能是任意的URL,它应该是函数的名称。参考https://developers.google.com/apps-script/manifest/homepage-trigger.

资源

  • https://en.wikipedia.org/wiki/Localhost
  • https://developers.google.com/apps-script/manifest/addons?hl=en#Common.FIELDS.openLinkUrlPrefixes