繁体   English   中英

如何使用 Google Apps Script 对 PARSE 平台 REST API 使用 POST 和 GET 请求

[英]How to use POST and GET request to PARSE platform REST API using Google Apps Script

在使用 API 时,我是一个初学者,最近我花了很多时间尝试使用 Parse Platform API 将它与我的 Google 电子表格同步。 我正在努力使用UrlfetchApp格式化我的GETPOST请求。 如何使用 Google Apps 脚本向 PARSE 平台 REST API 发出 POST 和 GET 请求?


现在我成功了,我只想分享我的脚本,以便它可以帮助其他人。 请参阅下面我自己的答案

基本上,我做了2个程序:

  • 一个名为“InsertIntoPARse”的程序允许我向我的解析平台发送请求。 它有 3 个输入:方法(POST 或 GET)、我们要读取/修改的类(数据库表)和要考虑的脚本。
  • 用于构建脚本的一个程序调用“InsertIntoParse”并返回结果。
var API_KEY = 'Insert Here your API KEY';
var applicationId = 'Insert here your application Id';

function InsertIntoParse(Method, Class, Script) {
  var root =
    'http://ec2-99-999-999-99.us-east-2.compute.amazonaws.com:80/parse';
  var endpoint = '/classes/' + Class;

  if (Method == 'POST') {
    endpoint = endpoint + '/';
  } else if (Method == 'GET') {
    var GetScript = Script;
    Script = '';
    endpoint = endpoint + '?' + GetScript;
  }

  var params = {
    method: Method,
    muteHttpExceptions: true,

    headers: {
      'Content-Type': 'application/json',
      'X-Parse-Application-Id': applicationId,
      'X-Parse-REST-API-Key': API_KEY,
    },
    payload: Script,
  };

  var response = UrlFetchApp.fetch(root + endpoint, params);
  //var data = response.getContentText();
  //var json = JSON.parse(data);
  //var campaigns = json['campaigns'];

  Logger.log('response = ' + response);
  return response;
}

以下是一些解释:

  • 在上面的代码中,您需要使用自己的值自定义 API_KEY 和 applicationId 这两个变量。 您还必须使用解析平台的 URL 自定义变量“root”(我的由 Amazon Web Services 托管)。
  • 使用 UrlFetchApp.fetch 函数将查询发送到您的 Parse 平台服务器。 此函数有 2 个输入:要联系的 url 和一个包含参数的附加变量。 根据您将使用的方法(GET 或 POST),URL 和参数会有所不同:
  • 对于 POST 方法,url 将类似于“http://MyParsePlatform.com:80/parse/classes/MyCustomClassName/”,参数将包含一行名为“payload”的行,您将在其中指定对象的条件你想创造
  • 对于 GET 方法,参数将有一个 exmpty 有效负载,并且 url 将类似于“http://MyParsePlatform.com:80/classes/List?where={"MyColumnName":"Value"}” 但是因为是 URL不能有像 {} 和 " 这样的特殊字符,我们需要用 html 代码替换它们(%22 代表“,%7B 代表 { 等等)。 最后一件事:“where”后面的等号需要保留一个 = 并且不能被 %3D 替换。

请注意,如果您发送了一个带有负载的 GET 请求,parse 会将其视为 POST 并将在您的类中创建一个新元素。

这是为 GET 请求调用“InsertIntoParse”的第二个程序:

function GetExample() {

var obj='{"fam_commune":"ANTIBES"}'
var scriptGetFamille = 'where='+encodeURIComponent(obj);
var retourGetFamille=InsertIntoParse('GET','MyClassName',scriptGetFamille);
var JSONresponse = JSON.parse(retourGetFamille.getContentText());
}

一些解释:

  • 变量“obj”包含我的 GET 搜索条件
  • 在“scriptGetFamille”变量定义中,我使用函数“encodeURIComponent”将所有特殊字符替换为 HTML 代码。 请注意,“where=”不在此函数中,以避免在使用“encodeURIComponent”函数时将 = 替换为其 HTML 等效代码。
  • 变量“retourGetFamille”将获得查询的结果。

现在让我们看一个 POST 的例子:

function AddAdherent(NumLigne) {

scriptFamille="{\"MyColumnName1\": \"MyValueForColumn1\",\"MyColumnName2\": \"MyValueForColumn2\"}"
var retourFamille=InsertIntoParse('POST','MyCustomClassName',scriptFamille);
var JSONresponse = JSON.parse(retourFamille.getContentText());
var fam_cd=JSONresponse.objectId;

}

以下是一些解释:

  • “scriptFamille”变量允许我定义我将创建的对象的特征(类的不同列的值)。 请注意使用 \\(转义字符)来确保后面的 " 字符不会关闭字符串。
  • 变量 retourFamille 将获得请求的结果。 它将是一个包含 ObjectId 和新对象创建日期的 JSON 对象。
  • 要返回字符串变量 ObjectId,我们首先需要解析 API 的响应(请参阅“JSONresponse”变量的内容),然后使用 JSONresponse.objectId 获取 Object Id 值

PS:请注意,我上面的示例远非完美,特别是因为我没有使用 https 连接(我还没有在我的 Parse Platform Server 上设置 https,这是数据交换安全所必需的)

我希望所有这些都可以帮助人们并使您的生活更轻松。 祝你好运 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM