【问题标题】:How to use Google Apps Script to serve a Google Calendar/Email gadget?如何使用 Google Apps 脚本为 Google 日历/电子邮件小工具提供服务?
【发布时间】:2012-08-13 13:53:39
【问题描述】:

我想使用 Apps 脚本为我们的 Google Apps for Business 域开发一个日历/gmail 小工具,以利用它提供的所有好处。

复制 Hello World 小工具示例时:

<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
  <ModulePrefs title="hello world example" /> 
  <Content type="html">
    <![CDATA[ 
      Hello, world!
    ]]>
  </Content> 
</Module>

使用模板 XML doGet():

function doGet(e) {
  var output = ContentService.createTextOutput();
  var xml = '<?xml version="1.0" encoding="UTF-8" ?>\n<Module>\n<ModulePrefs title="Calendar Gadget" />\n<Content type="html"><![CDATA[\nHello, world!\n]]></Content>\n</Module>';
  output.setContent(xml);
  output.setMimeType(ContentService.MimeType.XML);
  return output;
}

生成的服务内容与安装正常的示例小工具相同,但从 GAS 提供的内容未被识别为有效。日历会忽略它,GMail 会声明它无效。

小工具规范无效。确保 URL 正确且小工具不包含错误。

Google Apps 小工具要求使用 *.xml 文件名提供服务吗?

【问题讨论】:

    标签: gmail google-apps-script google-calendar-api google-apps google-gadget


    【解决方案1】:

    doGet() 不会逐字返回 XML(或 HTML)。提供给浏览器的确切内容和 doGet() 返回的内容是有区别的。

    因此,您的问题的答案是 - 是的,您需要有一个用于 Google 小工具的 XML 文件,并且不能使用 Apps 脚本。您或许可以做的是使用 Apps 脚本来写出 XML 文件。

    【讨论】:

    • 谢谢。写文件是一个想法——我什至没有想到 (doh)
    【解决方案2】:

    使用 ContentService 提供的内容应与提供的输入相同。请确保将网络应用配置为允许匿名访问。

    【讨论】:

    • 我想我不明白你在说什么。应该是“它应该起作用”还是“你必须确保”?
    • ContentService 应该正确地传递您的 XML。没有已知的 ContentService 会转换您的内容的情况。我的怀疑是小工具服务器无法访问 URL,或者服务器无法处理 ContentService 使用的重定向。
    • 好的,我理解您的意思,因此我认为 Google 日历处理小工具的方式比 Apps 脚本组件的问题更多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多