自定义ID
问题描述:
派生一个谷歌表单视图ID当我定义表单,它的网址:自定义ID
https://docs.google.com/a/domain.com/forms/d/1d2Y9R9JJwymtjEbZI6xTMLtS9wB7GDMaopTQeNNNaD0/edit
我完成添加我想要的形式有,并使用“发送”的问题按钮分发我的表单,我不单击“在电子邮件中包含表单”复选框。我的个人电子邮件形式到现在临危和电子邮件,邀请他们填写表格,当他们这样做,他们最终在页面上具有以下网址:
在我的AppEngine/Python 2.7版代码,我只能访问这个ID - “1d2Y9R9JJwymtjEbZI6xTMLtS9wB7GDMaopTQeNNNaD0” - 我的问题是如何从这种原始的定义ID到视图id得到 - “1FAIpQLScINR5rudwEKNVwlvz45ersqk_SO0kNcyN_EM1tJe3mXeFksw”
我已经使用谷歌驱动v2和v3尝试REST API来检索'定义'文件,但响应没有引用(我可以看到)这个'视图'ID。 我也尝试使用Google AppsScript FormApp API来检索'定义'表单,但是这也没有包含'view'id的引用(我可以看到)。 在所有我尝试过的情况下,如果我使用“视图”ID作为源,则API返回404错误,指示此“视图”ID不是Google Drive文件的ID。
任何想法?
答
使用谷歌Apps脚本发布Web应用程序(或使用执行API)来leaverage了 “getPublishedUrl” 功能
function doGet(theRequest){
var theDefinitionId = theRequest.parameters.formId;
var thePublishedUrl = myAPI_(theDefinitionId);
var output = ContentService.createTextOutput(thePublishedUrl);
output = output.setMimeType(ContentService.MimeType.JSON);
return output;
}
function myAPI_(theDefinitionId){
var thePublishedUrl = null;
try{
var existingForm = FormApp.openById(theDefinitionId);
thePublishedUrl = existingForm.getPublishedUrl();
} catch (err){
Logger.log(err);
}
var theReturn = {publishedUrl: thePublishedUrl};
var theJSONReturn = JSON.stringify(theReturn);
return theJSONReturn;
}