ユーザ管理
Marketo には、Marketo 内のユーザレコードに対して CRUD 操作を実行できる一連のユーザ管理エンドポイントが用意されています。ユーザは、ユーザに招待状を送信することで作成され、このユーザはパスワードを設定して初めて Marketo へのアクセス権を取得できます。
User Management API を使用する際、他の Marketo REST API とは次の点が異なります。
-
認証するには、HTTP ヘッダーメソッドを使用してアクセストークンを送信する必要があります。 アクセストークンをクエリ文字列パラメーターとして渡すことはできません。認証について詳しくは、こちらを参照してください。
-
REST API のカスタムサービスのユーザロールを作成する際は、2 つの異なるグループからロール権限を選択する必要があります。
- 管理にアクセスグループの「ユーザにアクセス」権限
- Access API グループの「Access User Management API」
-
応答本文には、呼び出しの成功または失敗を示す success ブール属性が含まれていません。代わりに、HTTP 応答ステータスコードを評価する必要があります。呼び出しが成功すると、200 ステータスコードが返されます。呼び出しが失敗すると、200 レベル以外のステータスコードが返され、応答本文にはエラーコードとエラーの説明メッセージを含む標準の「エラー」配列が含まれます。
-
日時文字列の形式は、
yyyyMMdd'T'HH:mm:ss.SSS't'+|-hhmm
です。これは、createdAt
、updatedAt
、expiresAt
の属性に適用されます。 -
ユーザ管理 API エンドポイントには、他のエンドポイントのように「/rest」というプレフィックスは付きません。
クエリ
ユーザ管理のクエリサポートには、すべてのユーザ、ロール、ワークスペースを取得する機能が含まれます。また、ユーザ ID による単一のユーザレコードを取得したり、ユーザ ID でロール/ワークスペースレコードを取得したりすることもできます。
ID 別のユーザ
ID によるユーザの取得エンドポイントは、単一の userid
パスパラメーターを受け取り、招待を受け入れたユーザの単一のユーザレコードを返します。
GET /userservice/management/v1/users/{userid}/user.json
{
"userid": "jamie@houselannister.com",
"firstName": "Jamie",
"lastName": "Lannister",
"emailAddress": "jamie@lannister.com",
"optedIn": false,
"failedLogins": 0,
"failedDeviceCode": 0,
"isLocked": false,
"lockedReason": null,
"id": 0,
"apiOnly": false,
"userRoleWorkspaces": [
{
"accessRoleId": 1,
"accessRoleName": "Admin",
"workspaceId": 0,
"workspaceName": "AllZones"
},
{
"accessRoleId": 2,
"accessRoleName":
"Standard User",
"workspaceId": 1008,
"workspaceName": "World"
}
],
"expiresAt": "2020-12-31T08:00:00.000t+0000",
"lastLoginAt": "2020-02-05T01:02:23.000t+0000"
}
ID 別の招待ユーザ
ID により招待されたユーザの取得エンドポイントは、単一の userid
パスパラメーターを受け取り、「保留中」のユーザ(まだ招待を受け入れていないユーザ)の単一のユーザレコードを返します。
GET /userservice/management/v1/users/{userid}/invite.json
{
"id": 25112,
"firstName": "Jamie",
"lastName": "Lannister",
"emailAddress": "jamie@lannister.com",
"userId": "jamie@lannister.com",
"subscriptionId": 3381,
"status": "pending",
"expiresAt": "20200807T20:49:54.0t+0000",
"createdAt": "20200731T20:49:54.0t+0000",
"updatedAt": "20200731T20:49:54.0t+0000"
}
ID 別のロールとワークスペース
ID によるロールとワークスペースをの取得エンドポイントは、単一の userid
パスパラメーターを受け取り、ユーザロールとワークスペースレコードのリストを返します。応答には、指定されたユーザに対応するロールとワークスペースのIDおよび名前を含むオブジェクトが 1 つ含まれた配列が含まれます。
GET /userservice/management/v1/users/{userid}/roles.json
[
{
"accessRoleId": 1,
"accessRoleName": "Admin",
"workspaceId": 0,
"workspaceName": "AllZones"
},
{
"accessRoleId": 2,
"accessRoleName": "Standard User",
"workspaceId": 1008,
"workspaceName": "World"
}
]
ユーザの参照
ユーザを取得エンドポイントは、すべてのユーザレコードのリストを返します。オプションの pageSize
パラメーターは、返されるエントリの最大数を指定する整数です。初期設定は 20 です。最大値は 200 です。オプションの pageOffset
パラメーターは、エントリの取得を開始する場所を指定する整数です。pageSize
と併用できます。初期設定は 0 です。
GET /userservice/management/v1/users/allusers.json
[
{
"userid": "jamie@lannister.com",
"firstName": "Jamie",
"lastName": "Lannister",
"emailAddress": "jamie@houselannister.com",
"id": 6785,
"apiOnly": false
},
{
"userid": "jeoffery@housebaratheon.com",
"firstName": "Jeoffery",
"lastName": "Baratheon",
"emailAddress": "jeoffery@housebaratheon.com",
"id": 7718,
"apiOnly": false
},
{
"userid": "rickon@housestark.com",
"firstName": "Rickon",
"lastName": "Stark",
"emailAddress": "rickon@housestark.com",
"id": 8612,
"apiOnly": false
}
]
userid
は、Adobe IMS に移行されたお客様の ID です。まだ移行していないお客様には、userid
フィールドに通常のメールアドレスが表示されます。ロールの参照
ロールを取得エンドポイントは、すべてのロールレコードのリストを返します。
GET /userservice/management/v1/users/roles.json
[
{
"id": 1,
"name": "Admin",
"description": "All permissions",
"type": "system",
"hidden": false,
"onlyAllZones": true,
"createdAt": "20100327T18:27:42.0t+0000",
"updatedAt": "20100327T18:27:42.0t+0000"
},
{
"id": 2,
"name": "Standard User",
"description": "All permissions except Admin",
"type": "system",
"hidden": false,
"onlyAllZones": false,
"createdAt": "20100327T18:27:42.0t+0000",
"updatedAt": "20180423T02:33:29.0t+0000"
},
{
"id": 24,
"name": "RTP Launcher",
"description": "Role required for launcher in RTP",
"type": "system",
"hidden": false,
"onlyAllZones": false,
"createdAt": "20151024T01:45:40.0t+0000",
"updatedAt": "20171024T23:41:24.0t+0000"
},
{
"id": 25,
"name": "RTP Editor",
"description": "Role required for editor in RTP",
"type": "system",
"hidden": false,
"onlyAllZones": false,
"createdAt": "20151024T01:45:40.0t+0000",
"updatedAt": "20171024T23:41:24.0t+0000"
},
{
"id": 101,
"name": "Analytics User",
"description": "Has access to Analytics",
"type": "custom",
"hidden": false,
"onlyAllZones": false,
"createdAt": "20100327T18:27:42.0t+0000",
"updatedAt": "20180423T02:33:29.0t+0000"
},
{
"id": 102,
"name": "Marketing User",
"description": "All permissions except Admin",
"type": "custom",
"hidden": false,
"onlyAllZones": false,
"createdAt": "20100327T18:27:42.0t+0000",
"updatedAt": "20100327T18:27:42.0t+0000"
},
{
"id": 103,
"name": "Web Designer",
"description": "Has access to Design Studio except approval permission",
"type": "custom",
"hidden": false,
"onlyAllZones": false,
"createdAt": "20100327T18:27:42.0t+0000",
"updatedAt": "20180423T02:33:29.0t+0000"
}
]
ワークスペースの参照
ワークスペースを取得エンドポイントは、すべてのワークスペースレコードのリストを返します。
GET /userservice/management/v1/users/workspaces.json
[
{
"id": 1,
"name": "Default",
"description": "Initial workspace for Marketing Activities, Design Studio, and so on.",
"globalViz": 0,
"status": "active",
"currencyInfo": null,
"createdAt": "20160910T23:08:05.0t+0000",
"updatedAt": "20160910T23:08:05.0t+0000"
},
{
"id": 1008,
"name": "World",
"description": "",
"globalViz": 0,
"status": "active",
"currencyInfo": null,
"createdAt": "20181119T21:59:36.0t+0000",
"updatedAt": "20181119T21:59:36.0t+0000"
},
{
"id": 1009,
"name": "Reproduction - US English - All Leads",
"description": "A Workspace for recreating customer-reported problems.",
"globalViz": 1,
"status": "active",
"currencyInfo": null,
"createdAt": "20190129T23:36:37.0t+0000",
"updatedAt": "20190129T23:36:37.0t+0000"
},
{
"id": 1010,
"name": "US",
"description": "United States - Qualified Leads",
"globalViz": 0,
"status": "active",
"currencyInfo": null,
"createdAt": "20190322T15:55:40.0t+0000",
"updatedAt": "20190322T15:55:40.0t+0000"
}
]
ユーザの招待
Adobe IMS 統合サブスクリプションでは、このエンドポイントは API 専用ユーザの招待のみをサポートします。標準ユーザを招待するには、代わりに Adobe User Management API を使用します。
「Marketo へようこそ」というメール招待状を新規ユーザに送信するためのユーザを招待エンドポイントです。メール本文には、初めて Marketo にアクセスするユーザを許可する「Marketo にログイン」リンクが含まれます。メールの受信者が招待を受け入れるには、「Marketo にログイン」リンクをクリックし、パスワードを作成して、Marketo へのアクセス権を取得します。受け入れプロセスが完了するまで、招待は「保留中」となり、ユーザレコードは編集できません。保留中の招待状は、送信後 7 日で期限切れになります。ユーザの管理について詳しくは、こちらを参照してください。
パラメーターは、リクエスト本文で application/json
形式で渡されます。
emailAddress
、firstName
、lastName, userRoleWorkspaces
パラメーターは必須です。userRoleWorkspaces
パラメーターは、accessRoleId
属性と workspaceId
属性を含むオブジェクトの配列です。
userid
パラメーターは、ユーザログインの目的で使用される一意のユーザ ID の文字列値であり、メールアドレスの形式にする必要があります。リクエストい指定されていない場合、userid
の値はデフォルトで emailAddress
パラメーターで指定された値になります。
ブール値の apiOnly
パラメーターは、ユーザが API 専用ユーザであるかどうかを指定します。expiresAt
パラメーターは、ユーザログインの有効期限を指定し、W3C ISO-8601 形式(ミリ秒単位なし)を使用して書式設定されます。リクエストで指定されていない場合、ユーザは期限切れになりません。reason
パラメーターは、ユーザの招待理由を説明する文字列です。
エンドポイントは、成功した場合は「true」の値を返し、それ以外の場合はエラーメッセージを返します。
POST /userservice/management/v1/users/invite.json
Content-Type: application/json
{
"emailAddress": "daenerys@housetargaryen.com",
"firstName": "Daenerys",
"lastName": "Targaryen",
"expiresAt": "2020-12-31T23:59:59-05:00",
"reason": "Keeper of dragons",
"userRoleWorkspaces": [
{
"accessRoleId": 1,
"workspaceId": 0
}
]
}
true
以下は、新規ユーザに送信される「Marketo へようこそ」というメール招待状の例です。メールの件名は「Marketo ログイン情報」、送信者は REST API カスタムサービスに関連付けられた API 専用ユーザのメールアドレス、受信者は firstName、lastName、emailAddress パラメーターで指定されています。
ユーザは、パスワードを 2 回入力し、「パスワードを作成」ボタンをクリックして、メール招待状を受け入れます。その後、Marketo へのアクセス権が初めて付与されます。
ユーザの更新
ユーザの更新サポートには、ユーザ属性を更新したり、ユーザを削除したりする機能が含まれます。招待を受け入れたユーザのみが更新できます。属性は、リクエスト本文のパラメーターとして application/json 形式で渡されます。
ユーザ属性の更新
Adobe IMS 統合サブスクリプションでは、このエンドポイントは API 専用ユーザの属性の更新のみをサポートします。標準ユーザの属性を更新するには、代わりに Adobe User Management API を使用します。
ユーザ属性を更新エンドポイントは、単一の userid
パスパラメーターを受け取り、単一のユーザレコードを返します。リクエスト本文には、更新する 1 つ以上のユーザ属性(emailAddress
、firstName
、lastName
、expiresAt
)が含まれます。
POST /userservice/management/v1/users/{userid}/update.json
Content-Type: application/json
{
"firstName": "JAMIE",
"lastName": "LANISTER",
"expiresAt": "20211231T08:00:00.000t+0000"
}
{
"userid": "jamie@houselannister.com",
"firstName": "JAMIE",
"lastName": "LANISTER",
"emailAddress": "jamie@houselannister.com",
"optedIn": false,
"failedLogins": 0,
"failedDeviceCode": 0,
"isLocked": false,
"lockedReason": null,
"id": 0,
"apiOnly": false,
"userRoleWorkspaces": [
{
"accessRoleId": 1,
"accessRoleName": "Admin",
"workspaceId": 0,
"workspaceName": "AllZones"
},
{
"accessRoleId": 2,
"accessRoleName":
"Standard User",
"workspaceId": 1008,
"workspaceName": "World"
}
],
"expiresAt": "2021-12-31T08:00:00.000t+0000"
"lastLoginAt": "2020-02-05T01:02:23.000t+0000"
}
ユーザの削除
Adobe IMS 統合サブスクリプションでは、このエンドポイントは API 専用ユーザの削除のみをサポートします。標準ユーザを削除するには、代わりに Adobe User Management API を使用します。
ユーザを削除エンドポイントは、単一の userid
パスパラメーターを受け取り、インスタンスから対応するユーザを削除します。これは、破壊的な削除であり、元に戻すことはできません。成功した場合は 200 ステータスコードが返され、それ以外の場合はエラーメッセージが返されます。
POST /userservice/management/v1/users/{userid}/delete.json
招待されたユーザの削除
招待されたユーザを削除エンドポイントは、単一の userid
パスパラメーターを受け取り、対応する「保留中」のユーザ(まだ招待を受け入れていないユーザ)をインスタンスから削除します。これは、破壊的な削除であり、元に戻すことはできません。成功した場合は 200 ステータスコードが返され、それ以外の場合はエラーメッセージが返されます。
POST /userservice/management/v1/users/{userid}/invite/delete.json
ロールの更新
ロールの更新サポートには、ロールの追加と削除の機能が含まれます。属性は、リクエスト本文のパラメーターとして application/json 形式で渡されます。
ロールの追加
ロールを追加エンドポイントは、単一の userid
パスパラメーターを受け取り、対応するユーザに 1 つ以上のユーザロールを追加します。 リクエスト本文には、それぞれ accessRoleId
属性と workspaceId
属性を含む 1 つ以上のオブジェクトのリストが含まれます。成功した場合、指定したユーザの accessRoleId/workspaceId
ペアのリスト全体が返されます。
POST /userservice/management/v1/users/{userid}/roles/create.json
Content-Type: application/json
[
{
"accessRoleId": 2,
"workspaceId": 1008
}
]
[
{
"accessRoleId": 1,
"accessRoleName": "Admin",
"workspaceId": 0,
"workspaceName": "AllZones"
},
{
"accessRoleId": 2,
"accessRoleName": "Standard User",
"workspaceId": 1008,
"workspaceName": "World"
}
]
ロールの削除
ロールを削除エンドポイントは、単一の userid
パスパラメーターを受け取り、対応するユーザから 1 つ以上のユーザロールを削除します。リクエスト本文には、それぞれ accessRoleId
属性と workspaceId
属性を含む 1 つ以上のオブジェクトのリストが含まれます。成功した場合、指定したユーザの accessRoleId/workspaceId ペアの残りのリストが返されます。
POST /userservice/management/v1/users/{userid}/roles/delete.json
Content-Type: application/json
[
{
"accessRoleId": 2,
"workspaceId": 1008
}
]
[
{
"accessRoleId": 1,
"accessRoleName": "Admin",
"workspaceId": 0,
"workspaceName": "AllZones"
}
]