无法在电子表格应用程序脚本中访问 People API

问题描述 投票:0回答:1

我正在尝试连接我的谷歌表单回复表,以在每次在表单上提交回复时使用详细信息创建新联系人。我已从应用程序脚本的“服务”选项卡添加了 Peopleapi。我还从同一帐户的 google 控制台创建了 people api 的凭据,并且还调用了 api 访问令牌。我仍然收到错误

ReferenceError: PeopleApi is not defined 

请参阅下面的完整代码:

var apiKey = ScriptApp.getOAuthToken();
  PeopleApi.getService().setToken(apiKey);


function onFormSubmit() {

  
  // Get data from spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var lastRow = sheet.getLastRow();

  var name = sheet.getRange(lastRow, 2, 1, 1).getValue();
  var phone = sheet.getRange(lastRow, 3, 1, 1).getValue();
  var address = sheet.getRange(lastRow, 4, 1, 1).getValue();
  

  // Create a People API service object
  var peopleService = PeopleApi.getService();

  // Build the person resource
  var person = {
    names: [{
      givenName: name
    }],
  
    addresses: [{
      formattedValue: address,
      type: "home"
    }],
    phoneNumbers: [{
      value: phone,
      type: "mobile"
    }],
    metadata: {
      primary: true
    }
  };

 

  // Create the contact using the People API
  peopleService.people().createContact(person).execute();
}

我已从应用程序脚本的“服务”选项卡添加了 Peopleapi。我还从同一帐户的 google 控制台创建了 people api 的凭据,并且还调用了 api 访问令牌。

google-sheets google-apps-script google-forms google-contacts-api google-people-api
1个回答
0
投票

“Peopleapi”服务的默认标识符是“People”。

Add Service dialog showing the default identifier of the Peopleapi

您应该仔细检查您的 Google Apps 脚本项目中为此服务设置的标识符是什么。为此,请查看“服务”部分下方的相应项目

Google Apps Script Sidebar

在上图中,Peopleapi* 的项目是People。单击此项将显示一个对话框,用于更改服务设置,包括标识符。

我认为大多数 Google Apps 脚本用户都会保留默认标识符名称,因此我建议您也保留它。

Service dialog showing the identifier set for the Peopleapi

另一方面,getService() 不是 Peopleapi 的方法。

Automcomplete options for People.get

我想知道您是从头开始编写代码还是使用工具生成代码。使用代码生成工具时,强烈建议花一些时间学习 IDE、编程语言和服务的基础知识,以便能够确定代码生成工具是否提供了有用的东西。请记住,像 ChatGPT 这样的工具可能会有 AI 幻觉

© www.soinside.com 2019 - 2024. All rights reserved.