それは実行APIを実行しているユーザーは、下のバインドスクリプトは、ドキュメントプロパティを読み取ることができ、実行APIで走ったドキュメントへのアクセス権を持っている場合のように見えます。
は、ここに私のテストです:新しいスプレッドシートを作成 。新しいスクリプトを作成します。 onOpenのメニューを使用してデータを追加します。スクリプト内でexecuteAPIを実行します。ログには、文書のプロパティが正常に表示されます。
function onOpen() {
var testMenu = SpreadsheetApp.getUi().createMenu("test")
testMenu.addItem("Add some data", "addData").addToUi();
testMenu.addItem("Preview data", "getData").addToUi();
}
function getData(){
var keys = PropertiesService.getDocumentProperties().getKeys();
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().clear().appendRow(keys)
}
function returnData(){
return PropertiesService.getDocumentProperties().getKeys();
}
function addData(){
var DT = new Date().toString()
PropertiesService.getDocumentProperties().setProperty(DT,DT);
}
function executeAPI(){
var url = 'https://script.googleapis.com/v1/scripts/'+ScriptApp.getProjectKey()+':run';
var payload = JSON.stringify({"function": "returnData","parameters":[], "devMode": true});
var params={method:"POST",
headers:{Authorization: "Bearer "+ ScriptApp.getOAuthToken()},
payload:payload,
contentType:"application/json",
muteHttpExceptions:true};
var results = UrlFetchApp.fetch(url, params);
Logger.log(results)
}
スクリプトスクリプトでもスクリプトのプロパティを利用できるため、プロパティストアの選択はあなた次第です。ドキュメントのプロパティはスコープの点で最大の役割を果たします...バインドされたスクリプトはスタンドアロンスクリプト(スクリプトエディタのファイルメニュー)と同じ場所にあるScript Idも持っていますので、その関数を呼び出す際に障害はありません実行APIから。 (ただし、APIを自分自身を使用していないことがあります。) – FTP