【发布时间】:2021-01-29 16:43:54
【问题描述】:
希望有人能帮忙。
我们一直在使用 Google 的 Save to Drive 按钮 API,版本 3 来将我们的系统生成的文档保存到用户的 Drive。这在上周停止工作。
在 JS 控制台中抛出的错误是:
Uncaught ReferenceError: _createSaveToDriveWidgetApplication is not defined
at https://drive.google.com/savetodrivebutton?usegapi=1&src=(redacted URL)&filename=My%20Statement.pdf&sitename=My%20Company%20Name&origin=https%3A%2F%2F(redacted URL)&gsrc=3p&jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en_GB.sedaY3Dv4HE.O%2Fam%3DwQE%2Fd%3D1%2Fct%3Dzgms%2Frs%3DAGLTcCO2t4glYwUJ-eH43TAA_offcn6l6Q%2Fm%3D__features__
所以我使用 google 的 API 文档上的演示源 found here 从头开始设置它。
我的测试源代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Save to Drive Demo: Explicit Render</title>
<link rel="canonical" href="https://(redacted)">
<script src="https://apis.google.com/js/platform.js"></script>
<script>
window.___gcfg = {
parsetags: 'explicit'
};
</script>
</head>
<body>
<a href="javascript:void(0)" id="render-link">Render the Save to Drive button</a>
<div id="savetodrive-div"></div>
<script>
function renderSaveToDrive() {
gapi.savetodrive.render('savetodrive-div', {
src: 'https://(redacted)/go.php',
filename: 'My Statement.pdf',
sitename: 'My Company Name'
});
}
document.getElementById('render-link').addEventListener('click', renderSaveToDrive);
</script>
</body>
</html>
编辑后的文本是 URL,它们的协议、主机、域和端口完全相同。此外,正在检索的内容以以下响应标头开始提供服务:
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Range
Access-Control-Expose-Headers: Cache-Control, Content-Encoding, Content-Range
即使我不需要 Origin 标头,因为这里没有使用或不需要 CORS。
我在 MAC 和 Windows 上尝试过 Chrome、Safari、Firefox,结果始终相同 - 调用 gapi.savetodrive.render 时,它会因错误而停止:
Uncaught ReferenceError: _createSaveToDriveWidgetApplication is not defined
我真的不知道还能做什么,因此我的查询在这里。我已经用谷歌搜索了该错误消息,但确实找不到任何关于它的信息。
【问题讨论】:
-
任何人都可以确认他们当前正在使用 API v3 和 Save To Drive 按钮没有任何问题吗?
-
一些进一步的挖掘表明这被记录为这里的一个问题:issuetracker.google.com/… 奇怪的是那些没有被谷歌索引(可能是因为它们是谷歌问题)我等一下看看会发生什么。
-
您好,您是否考虑发布一个引用问题跟踪器链接的答案,以提供更多可见性?
-
我的意思是回答。几乎没有阅读评论。
标签: javascript google-api google-drive-api