当前位置: 首页 > 知识库问答 >
问题:

Google Cloud人才解决方案按requisitionId提取工作

裴俊能
2023-03-14

我想知道在谷歌云人才解决方案中是否可以通过requisitionId来获取一份工作。requisitionid必须在不同的作业中是唯一的,因此它似乎是查找作业的自然候选项。

创建作业时,api返回作业名称,可用于查找作业:

您可以通过向云人才解决方案发送GET请求来检索先前插入的作业的详细信息。URI应包括原始create请求返回的先前插入的作业名,作为URL参数。

如果可能的话,我想避免存储这些名字。在我看来,存储它们增加了不必要的复杂性,因为我已经有了唯一的requisitionID。需要说明的是,API不允许添加具有重复requisitionID的作业:

作业项目/{my_app_id}/jobs/{google_assigned_id}已存在。跟踪的请求ID:...相关职务申请ID:...

那么我可以通过requisitionID查找作业吗?

我可以解析返回的错误消息以获得作业名..但这似乎相当脆弱。

共有1个答案

咸弘雅
2023-03-14

结果表明,list方法采用requisitionID,因此对于整个读取-创建-更新周期,我们可以执行以下操作:

const listRequest = {
  parent: `projects/${projectId}`,
  'filter': `companyName="${companyName}" AND requisitionId="${requisitionId}"`
}
const listResult = await jobService.projects.jobs.list(listRequest)
const existingJobs = listResult.data.jobs || [];

let existingJob = null
if (existingJobs && existingJobs.length > 0) {
  existingJob = existingJobs[0]
}

let googleJob
if (!existingJob) {
  const createRequest = {
    'parent': `projects/${projectId}`,
    'resource': {
      'job': {
        companyName,
        requisitionId,
        title,
        description,
        applicationInfo: {
          emails: ['email@example.com']
        }          
      }
    }
  }
  googleJob = await jobService.projects.jobs.create(createRequest)
  .then(result => result)
  .catch(resp => {
    console.error("ERROR")
    console.error(resp)
  })
} else {
  const patchRequest = {
    'name': existingJob.name,
    'resource': {
      'job': {
        companyName,
        requisitionId,
        title,
        description,
        applicationInfo: {
          emails: ['email@example.com']
        }          
      }
    }
  }
  googleJob = await jobService.projects.jobs.patch(patchRequest)
    .then(result => result)
    .catch(resp => {
      console.error("ERROR")
      console.error(resp)
    })
}

文档:https://cloud.google.com/tall-solution/job-search/docs/reference/rest/v3/projects.jobs/list?authuser=0&hl=de

备注:

  • filter参数中的双引号很重要。它将不接受单引号,并将给出一条隐秘的错误消息。
  • 修补程序请求不能接受参数,即使其他所有内容都需要父参数...
 类似资料:
  • 我的要求是插入供应商和目录,我只想单向映射。有没有反正解决它的单向只是因为我想从供应商(供应商)获取目录,我是新来的堆栈溢出,如果有任何编辑错误,请评论下来,我会修复它。 实体目录。Java语言 Supplier.java 服务类目录服务 供应商服务 我还想知道如何在spring boot中编写项目名称的搜索查询。假设供应商A有薯片、香蕉片、马沙拉片、咖啡。我想根据供应商ID搜索目录项,当我搜索“

  • web3.eth.submitWork()方法用来提交工作量证明(POW)解决方案。 调用: web3.eth.submitWork(nonce, powHash, digest, [callback]) 参数: nonce:String 8 Bytes: 找到的nonce(64 bits) powHash:String 32 Bytes: 区块头pow-hash (256 bits) dige

  • 1. 有无实习经历 2. 深挖项目,着重问需求分析阶段的内容。好几次讲到了功能的实现,面试官都说不想知道功能细节,只想知道前期需求调研和报告撰写的过程 3. 需求分析阶段遇到最大的困难 4. 如何看待从软件工程师转换到面向客户的售前角色 5. 如何去追求自己的喜欢的女生,如何介绍自己(?) 6. 如何看待chatGPT(二面又问到了) 7. Github中Copilot工具的使用对编程人员带来什么

  • 我写了一个相当基本的js函数,它以编程方式自动将iPhone键盘完美地对准每一个聚焦的输入字段(如果你喜欢,可以随意使用它!)。对齐主要由window.scroll处理——这是一种标准方法,适用于任何浏览器视图,UIWebView除外,因此是phonegap/cordova(2.1)。所以我需要一个变通方法。 我的工作代码: 工作在一切,但UIWebView,这是。正如我上面提到的,除了windo

  • 当我尝试运行时,出现以下错误: 原因:org.openqa.selenium.SessionNotCreatedException:无法创建新服务:ChromeDriverService构建信息:版本:“3.141.59”,修订:“e82be7d358”,时间:“2018-11-14T08:25:53”系统信息:主机:“HO00060LP417”,ip:“10.14.10.157”,os.name

  • 1px 方案在 VUX 组件内应用广泛,包括 Grid, ButtonTab, XTable, XButton, Cell 等等。 利用 Flexbox + 1px 你可以实现复杂的宫格布局。 引入 在你项目的App.vue引入,组件内不需要再重复引入。 <style lang="less"> @import '~vux/src/styles/1px.less'; </style> 可用类名: