ソースコードの秘匿性と共有設定について大事な部分と思います。
| 項目 | Webアプリ | ライブラリ |
|---|---|---|
| ユーザーへのスクリプトの共有設定 | 不要(共有しないままでOK) | 必要(「閲覧者」以上の権限を付与する必要あり) |
| ソースコードの可視性 | 不可(URL経由の利用ではソース非公開) | 可(共有されていればGASエディタ上で見える) |
| 関数の使い方 | doGet(e) / doPost(e) 経由で HTTP 経由で呼び出す | Library.functionName() のように直接呼び出す |
| 実行者の選択 | 「アクセスしているユーザー」または「自分として実行」から選べる | 呼び出したユーザーの権限で動作 |
| セキュリティ制御 | Session.getActiveUser() などでユーザー判定可能(認証必須にすれば) | 呼び出し元スクリプトに依存。制御しにくい |