使用来自经典Google网站的参数调用应用脚本

时间:2017-06-12 02:15:58

标签: google-apps-script google-sites

这与我有posted previously的问题有关。

我有一批CSV文件,其中包含从问题跟踪器工具获取的数据集。这些我上传到谷歌驱动器,并以谷歌网站的图表和列表形式呈现。

这很合理,因为我现在要做的就是更新谷歌硬盘中的文件,网站会自动更新。

显示的图表效果很好,但我想将列表显示为HTML表格(而不是嵌入的表格)。

应用程序脚本似乎是最合理的方法。但是,为了做到这一点,我需要将包含数据的工作表的URL提供给应用程序脚本。事实证明这比我预期的要困难得多。

我尝试通过直接链接应用脚本网址(xxxxxx / exec?source = yyyy)将数据源作为参数传递,但Google网站中的应用脚本小工具不会传递参数。

我尝试在iframe中嵌入脚本URL(带参数) - 正如其他地方所建议的那样,但没有任何运气。

有人有任何建议吗?感谢。

2 个答案:

答案 0 :(得分:2)

Google Apps脚本小工具无法在小工具设置中包含参数,而是将参数添加到指向Google网站页面的链接

private void updatesettings() {
    String UserName = username.getText().toString().toLowerCase().trim();
    String PhoneNumber= pno.getText().toString();

    FirebaseUser user = mauth.getCurrentUser();
    String uid = user.getUid();

    //this is to enter all the details under the UID of currently logged in user

    dbr = FirebaseDatabase.getInstance().getReference().child("Users").child(uid);

    HashMap<String, String> userMap = new HashMap<String, String>();
    userMap.put("name", UserName);
    userMap.put("phone number", PhoneNumber);
    userMap.put("status", "jdjdjjdjdjdj");
    userMap.put("image", "default");
    userMap.put("thumbnail", "default");

    dbr.setValue(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if(task.isSuccessful()){
                // Toast.makeText(UpdateUserSettings.this, "Your settings have been updated", Toast.LENGTH_LONG).show();
                startActivity(new Intent(UpdateUserSettings.this, MainActivity.class));
            }
            else{
                Toast.makeText(UpdateUserSettings.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
            }
        }
    });
}

关于可能存在问题的相同Google Apps脚本小工具的多个实例。我认为更好的方法是制作脚本的副本,并为每个脚本制作一组不同的参数。

一步一步

  1. 创建网站
  2. 创建脚本
  3. 添加gs代码

    在这种情况下,代码会根据文件创建模板,如果网址参数https://sites.google.com/sites/mysite/mypage?par1=A&par2=B 等于Hellow World!,该文件会显示message,否则会显示{{ 1}}。

    true
  4. 创建HTML文件并添加HTML代码

    undefined
  5. 发布您的网络应用

  6. 创建页面
  7. 插入Google Apps脚本小工具
  8. 保存页面
  9. 在浏览器地址框或链接

    中写下页面URL和所需参数

    https://sites.google.com/a/rubenrivera.mx/ejemplos/posts/1?message=true

答案 1 :(得分:1)

对于嵌入在经典google网站中的应用脚本网络应用,querystring参数效果很好。相反,如果嵌入到新的google网站中则无法正常工作,这是一个大问题,这意味着无法迁移使用querystring的经典网站,并且很快经典google网站将停止工作。