Microsoft Graph コマンド ライン インターフェイスの概要 (CLI)
[アーティクル] 2024/11/07
3 人の共同作成者
フィードバック
この記事の内容
API バージョン
認証
Microsoft Graph を呼び出す
次の手順
このトピックでは、Microsoft Graph コマンド ライン インターフェイス (CLI) を使用して、いくつかの基本的なタスクを実行します。 CLI をまだインストールしていない場合は、このガイド に 従う前にインストールしてください。
Microsoft Graph CLI では、 Microsoft Graph REST API v1.0 が使用されます。
Microsoft Graph CLI では、委任されたアクセスとアプリ専用アクセスの 2 種類の認証がサポートされています。 このトピックでは、委任されたアクセスを使用してユーザーとしてサインインし、ユーザーに代わって動作する CLI に同意を付与し、Microsoft Graph を呼び出します。
無人シナリオでのアプリ専用アクセスの使用の詳細については、「 Microsoft Graph コマンド ライン インターフェイス (CLI) でアプリ専用認証を使用する 」を参照してください。
Microsoft Graph の各 API は、1 つ以上のアクセス許可スコープによって保護されています。 ユーザーサインインは、使用する予定の API に必要なスコープのいずれかに同意する必要があります。 この例では、次の API を使用します。
、User.Read
Team.ReadBasic.All
、Channel.ReadBasic.All
および ChannelMessage.Send
アクセス許可のスコープを使用すると、これらの呼び出しが有効になります。
コマンドを mgc login
使用して、必要なスコープでサインインします。
mgc login --scopes User.Read Team.ReadBasic.All Channel.ReadBasic.All ChannelMessage.Send
コマンドを実行すると、Web ページに移動してデバイス コードを使用してサインインするように求められます。 完了すると、コマンドが完了します。 サインインする必要があるのは、セッションごとに 1 回だけです。
ヒント
新しいアクセス許可スコープでコマンドを mgc login
繰り返すことで、追加のアクセス許可を追加できます。
サインインしたら、Microsoft Graph への呼び出しを開始できます。
注意
Microsoft Entra リソースに対する一部の要求では、高度なクエリ機能を使用する必要があります。 不適切な要求、サポートされていないクエリ、またはクエリ パラメーターやConsistencyLevel
ヘッダーなど、予期しない結果を含む$count
応答を示す応答を取得すると、要求が成功する可能性があります。 詳細と例については、「 ディレクトリ オブジェクトの高度なクエリ機能 」を参照してください。
このセクションでは、サインインしているユーザーを見つけて、そのユーザー ID を取得します。 これは、後で使用する他のコマンドのパラメーターとして使用する必要があります。 まず、次のコマンドを実行します。 をサインインしているユーザーの表示名に置き換えます <your-display-name>
。
mgc users list --filter "displayName eq '<your-display-name>'"
このコマンドは、サインインしているユーザーの JSON 表現を出力します。
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
"value": [
{
"businessPhones": [
"\u002B1 412 555 0109"
],
"displayName": "Megan Bowen",
"givenName": "Megan",
"jobTitle": "Marketing Manager",
"mail": "MeganB@contoso.com",
"mobilePhone": null,
"officeLocation": "12/1110",
"preferredLanguage": "en-US",
"surname": "Bowen",
"userPrincipalName": "MeganB@contoso.com",
"id": "4db673f0-3c2a-4d45-a9d9-3a4a8c63af6e"
}
]
}
OData クエリ パラメーター を使用して、応答をカスタマイズできます。 たとえば、ユーザーの表示名のみを要求するには、 オプションを --select
使用できます。
mgc users get --user-id <user-id> --select displayName
次に、 コマンドを mgc me joined-teams list
使用して、ユーザーの参加済みチームを一覧表示します。
mgc users joined-teams list --user-id <user-id> --select displayName,id
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams(displayName,id)",
"@odata.count": 5,
"value": [
{
"id": "ab41a24e-ed63-4725-abb7-d22f90a4fdc3",
"displayName": "Sales and Marketing"
},
{
"id": "6520aa84-f197-489c-b79e-a2614a5a2ad0",
"displayName": "Mark 8 Project Team"
},
{
"id": "e7bc29ba-7794-4df9-8f35-fce723b15fe4",
"displayName": "Retail"
},
{
"id": "22cf3814-dbef-4eb0-abe3-759b320b7d76",
"displayName": "Digital Initiative Public Relations"
},
{
"id": "76708e21-b4ad-431e-9394-4ee7536d17bf",
"displayName": "U.S. Sales"
}
]
}
ユーザーの参加済みチームのいずれかを選択し、その チームをコピーします id
。
次に、コマンドのパラメーター mgc teams channels list
としてチームの ID を使用します。
mgc teams channels list --team-id ab41a24e-ed63-4725-abb7-d22f90a4fdc3 --select displayName,id
{
"@odata.context":
"https://graph.microsoft.com/v1.0/$metadata#teams(\u0027ab41a24e-ed63-4725-abb7-d22f90a4fdc3\u0027)/channels(displayName
,id)",
"@odata.count": 2,
"value": [
{
"id": "19:9194c1a65d9c478fa0dc1d5cd5bdf18a@thread.tacv2",
"displayName": "Monthly Reports"
},
{
"id": "19:YlJvOa8M094qgkEgjJR7l6AogKx9jDsLpuXsl7O8Ft81@thread.tacv2",
"displayName": "General"
}
]
}
いずれかのチャネルを選択し、そのを id
コピーします。
チーム ID とチャネル ID の両方が作成されたので、チャネルにメッセージを投稿できます。 メッセージを送信するには、次のコマンドを使用します。
mgc teams channels messages create --team-id ab41a24e-ed63-4725-abb7-d22f90a4fdc3 --channel-id 19:YlJvOa8M094qgkEgjJR7l6AogKx9jDsLpuXsl7O8Ft81@thread.tacv2 --body '{"body": {"content": "Hello world!"}, "importance": "urgent"}'
このコマンドは、前に使用したコマンドとは異なります。 データにクエリを実行する代わりに、実際には何かを作成しています。 Microsoft Graph では、このコマンドは HTTP POST
に変換され、その投稿の本文にオブジェクトが必要です。 この場合、オブジェクトは chatMessage です 。 パラメーターは --body
、 の JSON 表現を chatMessage
受け入れます。
コマンドを mgc logout
使用してサインアウトします。
mgc logout