権限(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(', ')}`);

参考