【问题标题】:Allow comma separated values in a prompt: Youtube API Example允许在提示中使用逗号分隔值:Youtube API 示例
【发布时间】:2019-10-21 11:52:56
【问题描述】:

我希望修改 YouTube API Apps 脚本以允许在提示中使用逗号分隔值;或替代方法。

我一直在学习如何使用以下示例通过 Apps 脚本从 YouTube API 中提取数据:https://developers.google.com/youtube/v3/quickstart/apps-script

我能够执行代码,但现在我正在学习如何将多个字符串值添加到提示符中。在示例中,您添加一个频道名称(字符串),它将输出一个 ID 和观看次数。我想看看如何允许脚本采用多个值。

添加:以 RedBull、JimmyKimmelLive、ESPN 为例。我认为需要在下面的代码中使用 getResponseText 修改调用。虽然,我不确定您是否必须以不同的方式调用它以允许多个值。

  var ui = SpreadsheetApp.getUi();
  var channelName = ui.prompt("Enter the channel name: ").getResponseText();
  channelsListByUsername('snippet,contentDetails,statistics',
                         {'forUsername': channelName});

【问题讨论】:

    标签: google-apps-script youtube-data-api


    【解决方案1】:
    • 您想在提示中输入多个值。
      • 样本值为RedBull, JimmyKimmelLive, ESPN。
    • 您想从RedBull, JimmyKimmelLive, ESPN 中检索每个值,并将它们提供给channelsListByUsername()。

    如果我的理解是正确的,那么这个修改呢?请认为这只是几个答案之一。修改后的脚本流程如下。

    1. 在提示符处输入RedBull, JimmyKimmelLive, ESPN的值。
    2. 使用split()解析输入的值。
    3. 将解析值的每个值赋予channelsListByUsername()。
      • 当时这种情况我用trim()。

    修改脚本:

    var ui = SpreadsheetApp.getUi();
    var channelName = ui.prompt("Enter the channel name: ").getResponseText();
    var values = channelName.split(",");
    for (var i = 0; i < values.length; i++) {
      channelsListByUsername('snippet,contentDetails,statistics', {'forUsername': values[i].trim()});
    }
    

    注意:

    • 在这个示例脚本中,输入值的分隔符是,。如果您想要其他模式,请告诉我。

    参考资料:

    如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

    【讨论】:

    • 这是完美的,它的工作原理!就这样我明白了。您创建一个值变量并在这种情况下拆分类似于 Excel 中的文本到列功能。逗号是分隔值的“拆分”。然后根据值中的输入数量循环。
    • @stirfryguy 感谢您的回复。我很高兴你的问题得到了解决。而且,你的理解是正确的。在循环中,当将值赋予函数channelsListByUsername() 时,我使用trim() 删除顶部和最后一个字符的空格。
    • @stirfryguy 如果您的问题得到解决,请按下接受按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果找不到按钮,请随时告诉我。 stackoverflow.com/help/accepted-answer
    • 如果你有时间再问一个问题。有时通道 ID 将不再处于活动状态,这会引发错误。我在想在循环中添加验证会起作用,但不确定该逻辑是否可行。我在看下面的回复。如果 totalresults = 0 则跳过,否则继续添加 ID pageInfo": { "totalResults": integer, "resultsPerPage": integer
    • @stirfryguy 感谢您的回复。不幸的是,从您的回复评论中,我无法理解您的新问题。我为我糟糕的英语水平道歉。我想正确理解您的新问题。那么您可以通过包含更多信息将其作为新问题发布吗?它将帮助包括我在内的用户思考您的新问题和解决方案。如果您能合作解决您的问题,我很高兴。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2022-12-01
    • 1970-01-01
    • 2022-07-29
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多