私は 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 個