事象
・ライブラリを読み込もうとした際に「サービス ID は空にできません」のエラーが表示される
・サービスIDを入力したのち再度ライブラリの「追加」ボタンを押しても同様のエラーが表示される
原因と対処法
サービスIDを未入力の状態で追加したライブラリ情報が「appscript.json」上に残っていたことが原因でした。
エラー発生時のjsonファイルはこんな感じ。librariesの1つ目がサービスID未入力のもの、2つ目がきちんと入力して保存し直したものです
{
"timeZone": "Asia/Tokyo",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"dependencies": {
"libraries": [
{
"userSymbol": "",
"version": "0",
"libraryId": "*********************************************************",
"developmentMode": true
},
{
"userSymbol": "test",
"version": "0",
"libraryId": "*********************************************************",
"developmentMode": true
}
]
}
}
エラーの原因になっている1つ目のライブラリ情報を削除することで正常にライブラリの追加・参照が行えるようになります。
{
"timeZone": "Asia/Tokyo",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"dependencies": {
"libraries": [
{
"userSymbol": "test",
"version": "0",
"libraryId": "*********************************************************",
"developmentMode": true
}
]
}
}
備考:サービスIDが未入力になる原因
プロジェクト内でライブラリを追加する時、通常はライブラリとして公開しているプロジェクトの名前が自動でID欄に記入されるようになっています
こんな感じ
また、サービスIDを未入力の状態に戻すとUI上で警告が表示され、[追加]ボタンは非活性になる仕様になっています
ところがライブラリとして公開されている参照先のプロジェクトの名前を日本語(おそらく正確にはサービスIDとして有効ではない文字列)にしてしまうと、IDが未入力のまま追加ボタンが押せてしまい、サービスIDのないライブラリ情報の記録につながってしまうようです
加えてサービスIDが未入力の状態で追加したライブラリはエディタ横の「ライブラリ」欄には表示されないため、ライブラリを追加できたのかできてないのかぱっと見分かりづらい感じになるようです、困ったね