2017-04-21 15 views
0

アプリスクリプトで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構文のドキュメントは実際にはないので、自動補完プロンプトで指定された構文を使用しています。

Autocomplete Syntax

は、その構文が正しいですか?もしそうなら、私は私が見ていない何か間違っているのですか?

答えて

関連する問題