Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何在谷歌应用程序脚本中使用作业资源?_Google Apps Script_Youtube Api_Youtube Analytics Api_Urlfetch - Fatal编程技术网

Google apps script 如何在谷歌应用程序脚本中使用作业资源?

Google apps script 如何在谷歌应用程序脚本中使用作业资源?,google-apps-script,youtube-api,youtube-analytics-api,urlfetch,Google Apps Script,Youtube Api,Youtube Analytics Api,Urlfetch,如何在Google应用程序脚本中使用 我知道必须启用YouTube Reporting API,但可以从哪个对象调用它 我正在尝试访问YouTube报告API。这是正确的称呼吗? 如果是这样,我的应用程序脚本无法识别YouTuberReporting,为什么会这样 youtubeReporting.jobs() 总而言之,我的目标是提取“Content Owner Reports”批量/查询,几乎阅读了所有相关步骤,除了起始点,即对象名称。Answer 为了访问YouTube Reportin

如何在Google应用程序脚本中使用

我知道必须启用YouTube Reporting API,但可以从哪个对象调用它

我正在尝试访问YouTube报告API。这是正确的称呼吗? 如果是这样,我的应用程序脚本无法识别YouTuberReporting,为什么会这样

youtubeReporting.jobs()
总而言之,我的目标是提取“Content Owner Reports”批量/查询,几乎阅读了所有相关步骤,除了起始点,即对象名称。

Answer 为了访问YouTube Reporting API,您必须添加YouTube分析API,还可以选择添加YouTube数据API。从这一点上,您可以创建一个报告,如示例所示

记住:

  • 导入YouTube Analytics API等服务时,请注意版本

  • 您可以指定所需度量的数量

参考文献


注意:尽管这个答案涉及YouTube报告api,但对于所有没有提供高级Google服务包装的Google api,流程应该是相同的。

此外,YouTube报告API并不是作为一项高级谷歌服务直接提供的。你也许可以使用。要访问报告api,您需要和

要求阅读:
解决方案:
  • 使用
    UrlFetchApp
  • 使用
    ScriptApp
  • 在appsscript.json清单文件中包含作用域
  • 切换到标准GCP并为此项目启用YouTube报告api。否则将返回403
片段:
/**
*@description从应用程序脚本访问Google API的包装器
*@param{string}url谷歌url端点
*@param{string}方法HTTP方法
*@param{object}requestBody要发送的requestBody
*@param{object}pathParameters要在url中修改的参数
*@param{object}queryParameters要附加到url的queryParameters
*@return{object}响应
*/
函数accessGoogleApiHTTP_(
网址,
方法,,
requestBody={},
路径参数={},
queryParameters={}
) {
const modifiedUrl=Object.entries(pathParameters).reduce(
(acc,[键,值]=>acc.replace(键,值),
网址
);
const queryUrl=Object.entries(queryParameters).reduce(
(acc,param)=>acc+param.map(e=>encodeURIComponent(e)).join('='),
'?'
);
常量选项={
方法,,
contentType:'应用程序/json',
标题:{
授权:`Bearer${ScriptApp.getOAuthToken()}`/*需要设置显式作用域*/,,
},
muteHttpExceptions:true,
有效负载:JSON.stringify(requestBody),
};
const res=UrlFetchApp.fetch(
modifiedUrl+queryUrl,
选择权
).getContentText();
控制台日志(res);
返回JSON.parse(res);
}
/**
*@见https://developers.google.com/youtube/reporting/v1/reference/rest/v1/jobs/create
*@description POSThttps://youtubereporting.googleapis.com/v1/jobs
*/
函数createyReportingJob(){
const reportTypeId='id',
name='name';
const jsonRes=accessGoogleApiHTTP_(
'https://youtubereporting.googleapis.com/v1/jobs',
"岗位",,
{reportTypeId,name},
未定义,
{onBehalfOfContentTowner:'contentOwnerId'}
);
}
清单范围:

"oauthScopes": [
  "https://www.googleapis.com/auth/yt-analytics",
  "https://www.googleapis.com/auth/script.external_request"
]