Teams のワークフローへのディープ リンク

新しいチャットの作成、スケジュール 設定ダイアログの開き、音声ビデオ通話への移動など、Teams で特定のタスクを実行するためのディープ リンクを作成できます。

この記事では、ディープ リンクを作成する方法について説明します。

アプリケーションは、ユーザーの一覧で新しいチャットを開始し、次の形式を使用してチャット名や下書きメッセージなどの追加情報を提供できます。

https://teams.microsoft.com/l/chat/0/0?users=<user1>,<user2>,...&topicName=<chat name>&message=<precanned text>

例: https://teams.microsoft.com/l/chat/0/0?users=joe@contoso.com,bob@contoso.com&topicName=Prep%20For%20Meeting%20Tomorrow&message=Hi%20folks%2C%20kicking%20off%20a%20chat%20about%20our%20meeting%20tomorrow

クエリ パラメーターは次のとおりです。

  • users: チャットの参加者を表すユーザー ID のコンマで区切られたリスト。 アクションを実行するユーザーは、常に参加者として含まれます。 現在、[ユーザー ID] フィールドでは、電子メール アドレスのみなど、userPrincipalName Microsoft Entraがサポートされています。
  • topicName: チャットに 3 人以上のユーザーが存在する場合は、チャットの表示名の省略可能なフィールド。 このフィールドが指定されていない場合、チャットの表示名は参加者の名前に基づいています。
  • message: チャットがドラフト状態のときに現在のユーザーの作成ボックスに挿入するメッセージ テキストのオプションのフィールド。

ボットでこのディープ リンクを使用するには、カードのボタンの URL ターゲットとしてディープ リンクを指定するか、アクションの種類でアクションをopenUrlタップします。 アプリでは、Teams JavaScript クライアント ライブラリ (TeamsJS) v.2.0 以降を使用して、ディープ リンクを手動で準備することなく作成することもできます。 次の例では、TeamsJS を使用して、チャット機能がサポートされているかどうかをチェックします。

if(chat.isSupported()) {
    const chatPromise = chat.openGroupChat({ users: ["joe@contoso.com","bob@contoso.com"], topic: "Prep For Meeting Tomorrow", message: "Hi folks kicking off chat about our meeting tomorrow"});
    chatPromise.
      then((result) => {/*Successful operation*/}).
      catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }

注:

チャットが既に存在する場合は、そのチャットにディープ リンクが開きます。

Teams アプリにディープ リンクを作成して会議のスケジュール 設定ダイアログを開き、次の方法を使用して会議のタイトルや参加者などの情報を提供できます。

TeamsJS の型指定された API を使用することをお勧めしますが、Teams 組み込みのスケジュール ダイアログへのディープ リンクを手動で作成することもできます。

ボット、コネクタ、またはメッセージ拡張機能のカードで使用できるディープ リンクを構成する場合は、次の形式を使用します。

https://teams.microsoft.com/l/meeting/new?subject=<meeting subject>&startTime=<date>&endTime=<date>&content=<content>&attendees=<user1>,<user2>,<user3>,...

注:

検索パラメーターは、空白 (``) の代わりに + シグナルをサポートしていません。 URI エンコード コードがスペースに対して %20 返されることを確認します。 たとえば、 ?subject=test%20subject 良いですが ?subject=test+subject 、悪いです。

クエリ パラメーターは次のとおりです。

  • attendees: 会議の出席者を表すユーザー ID のコンマ区切りリスト (省略可能)。 アクションを実行するユーザーは、会議の開催者です。 ユーザー ID フィールドでは、Microsoft Entra UserPrincipalName(通常はメール アドレス) のみがサポートされます。
  • startTime: イベントの開始時刻の省略可能なパラメーター。 開始時刻は 長い ISO 8601 形式である必要があります(例: 2018-03-12T23:55:25+02:00)。
  • endTime: イベントの終了時刻の省略可能なパラメーター 。ISO 8601 形式でもあります。
  • subject: 会議の件名の省略可能なパラメーター。
  • content: 会議の詳細フィールドの省略可能なパラメーター。

注:

サポートされていないため、場所を指定することはできません。 開始時刻と終了時刻を生成するときは、タイム ゾーンを含む UTC オフセットを指定する必要があります。

ボットでこのディープ リンクを使用するには、カードのボタンの URL ターゲットとして、またはアクションの種類を使用してタップ アクションとしてディープ リンクをopenUrl指定できます。

例: https://teams.microsoft.com/l/meeting/new?subject=test%20subject&attendees=joe@contoso.com,bob@contoso.com&startTime=10%2F24%2F2018%2010%3A30%3A00&endTime=10%2F24%2F2018%2010%3A30%3A00&content=​​​​​​​test%3Acontent​​​​​​​​​​​​​​

また、Teams アプリで TeamsJS v.2.0 以降を使用して、手動でリンクを準備することなく会議のスケジュール ダイアログを開くこともできます。 Teams でスケジュール ダイアログを開くには、Teams がまだ予定表機能をサポートしていないため、元のディープ リンク URL ベースのメソッドを引き続き使用する必要があります。

// Open a scheduling dialog from your tab
if(calendar.isSupported()) {
   const calendarPromise = calendar.composeMeeting({
      attendees: ["joe@contoso.com", "bob@contoso.com"],
      content: "test content",
      endTime: "2018-10-24T10:30:00-07:00",
      startTime: "2018-10-24T10:00:00-07:00",
      subject: "test subject"});
   calendarPromise.
      then((result) => {/*Successful operation*/}).
      catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }

カレンダーの操作の詳細については、API リファレンス ドキュメントのカレンダー名前空間を参照してください。

ユーザーが 1 対 1 通話、グループ通話、またはビデオ通話を開始するためのディープ リンクを準備するように Teams アプリを構成できます。 通話の種類と参加者を指定することで、1 人のユーザーまたはユーザーのグループに対してオーディオのみの呼び出しまたはオーディオ ビデオ通話を呼び出すことができます。 Teams が通話を発信する前に、クライアントは確認を求めます。 グループ通話がある場合は、同じディープ リンク呼び出しで一連の VoIP ユーザーと PSTN ユーザーを呼び出すことができます。

ビデオ通話で、Teams クライアントは通話の発信者のビデオをオンにする前に確認を求めます。 通話の受信者は、Teams の通話通知ウィンドウを使用して、音声のみで応答するか、音声とビデオで応答するかを選択できます。

注:

このメソッドは、会議の呼び出しには使用できません。

ディープ リンクは、次の 2 つの方法のいずれかで構成できます。

TeamsJS v.2.0 以降の型指定された API を使用することをお勧めしますが、手動で構成されたディープ リンクを使用して通話を開始することもできます。 次の形式を参照してください。

ディープ リンク フォーマット
音声通話を行う https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2> https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com
音声またはビデオ通話を開始する https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2>&withVideo=true https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com&withVideo=true
オプションのパラメータ ソースを使用して音声通話とビデオ通話を発信する https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2>&withVideo=true&source=demoApp https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com&withVideo=true&source=demoApp
VoIP ユーザーと PSTN ユーザーの組み合わせに音声通話とビデオ通話を発信する https://teams.microsoft.com/l/call/0/0?users=<user1>,4:<phonenumber> https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com,4:9876543210

クエリ パラメーターは次のとおりです。

  • users: 呼び出しの参加者を表すユーザー ID のコンマ区切りのリスト。 ユーザー ID フィールドは、Microsoft Entra UserPrincipalName(通常はメール アドレス)、または PSTN 通話でサポートされ、PSTN MRI 4:<phonenumber> がサポートされます。
  • withVideo: ビデオ通話を行うために使用できる省略可能なパラメーター。 このパラメーターを設定すると、呼び出し元のカメラのみがオンになります。 通話の受信者は、Teams 通話通知ウィンドウを通じて音声通話または音声通話とビデオ通話で応答できます。

アプリケーションでは、TeamsJS v.2.0 以降を使用して、これらのディープ リンクを手動で準備することなく、呼び出しを開始することもできます。 次のコードは、TeamsJS を使用して呼び出しを開始する方法を示しています。

if(call.isSupported()) {
    const callPromise = call.startCall({ targets: ["joe@contoso.com","bob@contoso.com","4:9876543210"], requestedModalities: [call.CallModalities.Audio], source: "demoApp"});
    callPromise.
      then((result) => {/*Successful operation*/}).
      catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }

ディープ リンクを生成して 、アプリを共有してステージを 作成したり、会議を開始したり、会議に参加したりできます。

ステージにコンテンツを共有するためのディープ リンクについては、「 会議でステージにコンテンツを共有するためのディープ リンク」を参照してください。

会議の会議側パネルへのディープ リンクを生成できます。 会議側パネルへのディープ リンクには、次の形式を使用します。

https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>.

例:

https://teams.microsoft.com/l/entity/fe4a8eba-2a31-4737-8e33-e5fae6fee194/tasklist123?webUrl=https://tasklist.example.com/123/456&label=Task 456&context={"chatId": "17:b42de192376346a7906a7dd5cb84b673@thread.v2","contextType":"chat"}

既定では、会議のサイド パネルにディープ リンクが開きます。 会議のサイド パネルではなくアプリでディープ リンクを直接開くには、ディープ リンク形式を追加 openInMeeting=false します。

https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>&openInMeeting=false

詳細については、「 タブへのディープ リンク」を参照してください。

次のシナリオでは、会議側パネルにディープ リンクが開きません。

  • アクティブな会議はありません。
  • アプリには、アプリ マニフェストで宣言されたコンテキストがありません sidePanel
  • openInMeeting はディープ リンクで に false 設定されます。
  • ディープ リンクは、会議ウィンドウまたはコンポーネントの外部で選択されます。
  • ディープ リンクは、別の会議で作成されたディープ リンクなど、現在の会議と一致しません。

Teams アプリは、Graph API を使用して会議 URL に参加するための URL を読み取ることができます。 このディープ リンクにより、ユーザーが会議に参加するための UI が表示されます。 詳細については、「会議の詳細を 取得 onlineMeeting および 取得する」を参照してください。

コード サンプル

サンプルの名前 説明 .NET Node.js
ディープ リンクを使用するサブエンティティ ID このサンプルでは、ボット チャットからサブエンティティ ID を使用するタブへのディープ リンクを使用する方法を示します。 また、次のディープ リンクも表示されます。
- アプリへの移動
- チャットへの移動
- プロファイル ダイアログを開く
- スケジュール 設定ダイアログを開く
表示 表示