ユーザ管理
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 を使用します。
Invite User エンドポイントは、新しいユーザーに「Welcome to Marketo」のメール招待状を送信します。 メール本文には、「Marketoにログイン」リンクが含まれており、ユーザーは初めてMarketoにアクセスできます。 メールの受信者が招待を受け入れるには、「Marketo にログイン」リンクをクリックし、パスワードを作成して、Marketo へのアクセス権を取得します。 受け入れプロセスが完了するまで、招待は「保留中」となり、ユーザレコードは編集できません。 保留中の招待状は、送信後 7 日で期限切れになります。 詳しくは、Marketo ユーザー管理ドキュメント を参照してください。
パラメーターは、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"
}
]