deep dive into advanced teams development - dqc van... · to non-messaging apis, such as team...

Post on 22-May-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Deep Dive into advanced Teams Development

Rick Van Rousselt

DQC DEV SUMMIT

Getting started with Teams development

How to setup your development environment

Setup your development environment

http://bfy.tw/Mx6e

Lets dive in

Manifest

Manifest

Describes functionality of your Teams app

Part of the definition you upload

Manifest

• Describes how the app integrates with Teams• Name• Description• Icons• Permissions• Valid DomainsTabsStatic TabsBotsConnectorsCompose Extensions

Website to host your code

The actual functionality of your app

App Studio

• Simplifies the process of creating Teams apps

ngrok

Teams

ngrok

• Setup an account and get an auth token• Run ngrok authtoken <yourtoken>• Update file with

• tunnels: • signaling: addr: 12345 • proto: http • host-header: localhost:3979

• media: • addr: 8445 • proto: tcp

!!Python style

Tabs

Tab scopes

Teams

Personal

Group

Teams tabs

For a channel and allows for a

shared experience

Always a configurable tab

User configures the tab experience

the first time it’s added

Personal tabs

1:1 conversation or chats

Static tabs: content that is

relevant to individual users

Demo

Bots

Bot scopes

Teams

Personal

Group: dev preview

Appears like any other team member except a hexagonal avatar icon and is always online

Team bot

visible in channel

requires the user to @mention the

bot

Personal bots

User can just start typing

Connectors

Connectors

Post activity to a channel• Text• Card• Actionable messages

Incoming webhookPosting a JSON to an HTTP endpoint

Actionable messages

• Get notified of activity but also act on this activity

• Removes the need of extra steps like switching application

Create an actionable message:http://messagecardplayground.azurewebsites.net/

Demo

Message extensions

Compose extensions

Message extensions

• Integrate your app directly in a chat

• Get information from your app and post that information

• Uses the bot framework

• 5 seconds to respond• Default query possible (initialrun = true)

• Recently viewed items• Favorites

• Every request has information about the user

First there was search

Now Actions

• Static• Teams will render a form for you

• Dynamic• You can do whatever you want

Demo

Activity Feed integrations

Activity feed integrations

• Uses the bot framework api• Flag specific messages to appear in the activity

feed• Use deep linking to navigate the user to content• You can create a notification only bot

Demo

Outgoing webhooks

Custom bots

Outgoing Webhooks (custom bots)

• Easy way to extend teams without the need of building a full bot

• Listens to @mentions• First authenticate the caller

Outgoing webhooks limitations

• Outgoing webhooks do not have access to non-messaging APIs, such as team roster membership.

• Outgoing webhooks cannot post into channels proactively.

• Although outgoing webhooks can use cards, they cannot use button actions like imBack or invoke.

Calling

Call types

Calls and meetings

• 2 types of meetings:• Ad-hoc• Scheduled

For a bot this is not true: A meeting is just a (multiparty) call with additional metadata such as: chatId, joinUrl, startTime, endTime,…

Add additional permissions for the AAD app

Permission Display String Description Admin Consent Required

Calls.Initiate.All Initiate outgoing 1:1 calls from the app (preview)

Allows the app to place outbound calls to a single user and transfer calls to users in your organization’s directory, without a signed-in user.

Yes

Calls.InitiateGroupCall.All Initiate outgoing group calls from the app (preview)

Allows the app to place outbound calls to multiple users and add participants to meetings in your organization, without a signed-in user.

Yes

Calls.JoinGroupCall.All Join Group Calls and Meetings as an app (preview)

Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. The app will be joined with the privileges of a directory user to meetings in your tenant.

Yes

Calls.JoinGroupCallasGuest.All Join Group Calls and Meetings as a guest (preview)

Allows the app to anonymously join group calls and scheduled meetings in your organization, without a signed-in user. The app will be joined as a guest to meetings in your tenant.

Yes

Calls.AccessMedia.All Access media streams in a call as an app (preview)

Allows the app to get direct access to media streams in a call, without a signed-in user.

Yes

Demo

Authentication

Tips

Create an afterbuild

task

Rick Van Rousselt

CTO Advantive BelgiumOffice Apps and Services MVP

BIWUG Board Member

Email : rick.van.rousselt@advantive.be

rickvanrousselt

https://www.rickvanrousselt.com

jobs@advantive.be

top related