アプリスクリプトでAdvanced Drive Serviceを有効にしました。 Googleドライブのファイルの場合、既に存在する可能性のあるメタデータプロパティを設定する必要があるため、update
メソッドをDrive.Properties
として使用しようとしています。このメソッドは、「プロパティを更新するか、存在しない場合は追加する」と想定されています。 (Properties: updateを参照してください)Drive.Properties.updateを使用してファイルプロパティを更新または追加する
次のコードはサイレントモードでは失敗します(ログに記録されたものはなく、ファイルに追加されたプロパティはありません)。しかし、私がこれらの同じ行を踏むと、毎回catchブロックが実行されるのがわかります。
var fileId = '1jgoihblahblahblah' /* an existing file id */;
var property = {key: 'TestKey', value: 'TestValue', visibility: 'PUBLIC'}
try {
Drive.Properties.update(property, fileId, "TestKey");
} catch (e) {
Logger.log(e);
}
私はこのラインでupdate
への呼び出し交換する場合:
Drive.Properties.insert(property, fileId);
...その後のコードは毎回作品を。プロパティは書き込まれ、Drive.Properties.list(fileId)
を呼び出して返されます。
API explorer(実際の値または上記の "TestKey"と "TestValue"の例)を使用して同じ値をテストすると、常に正常に動作するため、単に不良データを提供する問題ではないと思います。UPDATE: APIエクスプローラで、「プロパティキーに文字、数字、および文字のみが含まれている可能性があります。!@ $%^ & *()-_ /」の値が渡されても、 "TestKey"や "Link"(私が使用している実際のキーの1つ)のようなキー名には、明らかに無効な文字はありません。
1)スクリプトエディタでエラーを解決するにはどうすればよいですか? update
はtry/catchがなくても黙って失敗するため、エラーテキストを取得する方法はまだわかりません。
2)高度なサービスのためのApps Script構文のドキュメントは実際にはないので、自動補完プロンプトで指定された構文を使用しています。
は、その構文が正しいですか?もしそうなら、私は私が見ていない何か間違っているのですか?