【问题标题】:populating google forms dropdowns with global contact directory使用全局联系人目录填充 google 表单下拉列表
【发布时间】:2016-07-08 21:28:15
【问题描述】:

在编码方面我完全是新手,但我创建了几个谷歌表单并取得了一些成功。

我的新表格的第一个问题是“你叫什么名字?”当您选择收件人时,我希望得到一个与 Gmail 中相同的框,它会在您键入时自动完成 - 是否可以在谷歌表单中通过捎带任何代码来实现这一点?

我无法解决,因此同时我一直在尝试使用列表项下拉列表,该下拉列表使用谷歌应用程序脚本查找联系人。 到目前为止,我已经创建了一个填充下拉列表的问题 “联系人”一词的 84 个实例(我的列表中有 84 个联系人!)但我不知道如何实际获取姓名。

var form = FormApp.getActiveForm();
var group = ContactsApp.getContacts();
var item = form.addListItem();
item.setTitle('What is your name?');

上面创建了一个包含 84 个单词 contact 实例的数组。 所以我尝试了这个......

var form = FormApp.getActiveForm();
var group = ContactsApp.getContacts();
for (var i in group) {
var now = (group[i].getFullName());
}
var item = form.addListItem();
 item.setTitle('What is your name?');
 item.setChoiceValues(now);

它仍然为 var 组创建了一个包含 84 个联系人实例的数组,但现在还返回了我的一个联系人字符串作为 var。不幸的是 item.setChoiceValues 需要一个数组而不是字符串。

无论如何,我不确定这是不是正确的方法,因为这似乎是在搜索我的个人联系人,而不是域上的全局目录。有没有办法用没有管理员权限的目录联系人填充它? (我可以访问 Gmail 中的联系人,为什么不能在 Google 表单中访问?)

我知道它也可以将 .csv 从联系人导出到工作表并从那里进行填充,但除非我每天运行 SIMS 报告(给系统增加压力),否则这不会是最新的,并且在以下情况下似乎没有必要它显然已经在 GMail 中工作了。

就像我说的那样,我是新手,希望能提供任何帮助。

谢谢

【问题讨论】:

    标签: google-apps-script google-forms google-contacts-api


    【解决方案1】:

    您在这里问了很多问题,所以我会尽我所能提供帮助。

    A) 我不确定自动完成功能,这主要是因为我怀疑谷歌会让你放弃他们的自动完成功能。

    B)您与第二种方法非常接近。只需将 'now' 声明为列表并 .push 进入其中,如下所示:

    //outside the for loop
    var now = [];
    
    for (i in group) {
      now.push(group[i]);
    }
    

    在你的 for 循环结束时,你有一个列表“现在”,按顺序填充了组的每个成员。

    C)我真的不确定你在最后一个问题中要问什么。您可以访问您的 gmail 文件,因为您可以通过访问 google 表单来保证登录到 google。但我不知道还有其他可以访问的联系人目录,除非您自己制作。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      要获取您的每一封电子邮件

      var email = group[i].getEmails()[0].getAddress;
      

      【讨论】:

        猜你喜欢
        • 2018-02-10
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 2023-03-19
        • 2018-03-06
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        相关资源
        最近更新 更多