権限(Permissions)API
スクリプティング API の一部メソッドは、利用にあたってユーザーの明示的な許可(権限)が必要です。これは、スクリプトがユーザーの同意なく機微な操作を行えないようにするためです。
権限の確認
特定の権限を持っているかは api.v1.permissions.has で確認できます。
let canEditDocument = await api.v1.permissions.has('documentEdit');
if (canEditDocument) {
api.v1.log('Can edit document');
} else {
api.v1.log('Cannot edit document');
}
権限のリクエスト
ユーザーに権限を要求するには api.v1.permissions.request を使います。
let granted = await api.v1.permissions.request('storyEdit');
if (granted) {
api.v1.log('Permission granted!');
// ここから処理を続行
} else {
api.v1.log('Permission denied');
api.v1.ui.toast('Story edit permission is required', { type: 'error' });
}
ユーザーには、要求内容を説明するダイアログが表示され、「許可」または「拒否」を選べます。Promise は、許可された場合は true、拒否された場合は false に解決します。すでに権限が許可済みの場合も true になります。
権限一覧の取得
付与済みの権限一覧は api.v1.permissions.list で取得できます。
let grantedPermissions = await api.v1.permissions.list();
api.v1.log(`Granted permissions: ${grantedPermissions.join(', ')}`);
参考
- API リファレンス - API 全体(英語)