Google Apps Scriptを使用してプラットフォームREST APIをPARSEするためのPOSTおよびGETリクエストを使用する方法

okwaves2024-01-25  7

私は API の使用に関してはまったくの初心者で、最近は Parse Platform API を使用して Google スプレッドシートと同期することに多くの時間を費やしています。 UrlfetchApp を使用して GET または POST リクエストをフォーマットするのに苦労しています。 Google Apps Script を使用して PARSE プラットフォーム REST API に POST リクエストと GET リクエストを発行するにはどうすればよいですか?

成功したので、他の人に役立つようにスクリプトを共有したいと思います。 以下の私自身の回答を参照してください。



------------------------

基本的に、2 つのプログラムを作成しました:

「InsertIntoPARse」という 1 つのプログラムが、これにより、解析プラットフォームにリクエストを送信できるようになります。 3 つの入力があります: tメソッド (POST または GET)、読み取り/変更するクラス (データベースのテーブル)、および考慮するスクリプト。 スクリプトの構築に使用される 1 つのプログラムは、「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;
}

ここにいくつかの説明があります:

上記のコードでは、2 つの変数 API_KEY と applicationId を独自の値でカスタマイズする必要があります。変数「root」もカスタマイズする必要があります。解析プラットフォームの URL を置き換えます (私のプラットフォームは Amazon Web Services によってホストされています)。 クエリは、関数 UrlFetchApp.fetch を使用して Parse プラットフォーム サーバーに送信されます。この関数には 2 つの入力があります: 連絡先の URL とパラメータを含む追加の変数です。使用するメソッド (GET または POST) に応じて、URL とパラメーターは異なります。 Pの場合OST メソッドの場合、URL は「http://MyParsePlatform.com:80/parse/classes/MyCustomClassName/」のようなものになります。パラメータには「payload」という行が含まれます。ここで、作成するオブジェクトの基準を指定します。 GET メソッドの場合、パラメーターには空のペイロードが含まれ、URL は "http://MyParsePlatform.com:80/classes/List?where={"MyColumnName":"Value"}" のようなものになります。ただし、URL には {} や " などの特殊文字を含めることはできないため、これらを HTML コード (" の場合は %22、{ の場合は %7B など) に置き換える必要があります。最後にもう 1 つ、「where」の後の等号です。は = のままにする必要があり、%3D に置き換えることはできません。

ペイロードを含む GET リクエストを送信した場合、parse はそれをPOST を実行すると、クラス内に新しい要素が作成されます。

これは、「InsertIntoParse」を呼び出す 2 番目のプログラムです。 GET リクエストの場合:

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 を使用してオブジェクト ID 値を取得する必要があります。

追記: 上記の例は、特に https 接続を使用していないため、完璧には程遠いことに注意してください (必須である Parse Platform Server に https をまだ設定していません)データ交換の安全性を考慮して)

これらすべてが人々を助け、あなたの生活を楽にすることを願っています。頑張ってください!

2020 年 9 月 4 日 22:19 に回答

スリム ケタリ

スリム ケタリ

11

3

銅バッジ 3 個

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。