SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Switzerland 2017
Agenda
Time Topic / Activity Speaker
9.00
12.00
Introduction to Microsoft Teams Development David
12.00
13:00
Lunch Break
13.00
16:00
Getting Started with the Microsoft Graph Stefano
16.00
17.00
Sharing & Networking
17:00 SharePint Washbar
Speakers
Stefano Tempesta
Microsoft MVP
David Schneider
Microsoft MVP
Call to action
Join Office 365 developer program
https://dev.office.com/devprogram
to leverage all resources for Office 365
development learning
Build applications on Office 365 platform
Attend MVP led local community events to
continue learning on Office 365 development
Share your feedback on Bootcamp at
https://aka.ms/o365devbootcampfeedback
Microsoft Teams
Extensible platform
Build apps with a rich set of capabilities to enable these higher-performing teams
181Markets
19Languages
Reach your users in their chats, channels, notifications, and personal workspace
Available now
Bots
Help users get
tasks done in
conversations
Connectors
Post rich updates
to channels
Tabs
Surface rich
content within
Teams
Office
Store
Drive engagement
by submitting
your app to the
Office Store
Actionable
Messages
Add rich
interaction to your
connector cards
Activity
Feed
Engage users
via feed
notifications
Compose
Extensions
Allow users to query
and share rich cards
in conversations
Available in Developer Preview
Rich surface area for your app
As simple as hosting your existing
web app
Team productivity: within channels
Personal productivity: app flyout
Your services, experience, & users
Push rich interactive cards
into channels
Users can take quick actions like
comment, select options, set a
date
Uses incoming webhook API
Fully supported in both Teams
and Outlook
Notify users personally via the
activity feed
Same API as sending bot
messages
Deep link straight into tabs
Bots make it easy for users to interact
with your app in Team conversations or
1:1
Built using Microsoft Bot Framework
Complete tasks via basic commands,
menu or natural language
Rich Microsoft Teams features, e.g.
 Input menus
 Dynamic message updates
 Integrate with tabs
Personalize Teams Compose box with
your App & Services content
Users can query and insert your app
content into conversations
Example: Bug details from VSTS
Example: Sales opportunities from CRM
You can reuse services you built for
Bots or Tabs
Microsoft Teams Apps
• With a single package, deliver one or more capabilities to end users, in
contexts that make sense in your experience
Single App definition – manifest.json
Single package (.ZIP) used for Sideloading or Office Store
submission
Register and submit your app
today to the Office Store
Your app will be ready in the
Developer Preview once approved
Light up your experience how and where you want it:
Teams Scope - your experience exists in the team context
• Team owners may add your experience to a team:
• Bots and Compose Extensions – available on all channels
• Teams Tabs (“Configurable”) – added and customized on a per-channel basis
Personal Scope – your experience exists in an individual user context
• Individuals add the experiences they want for personal use
• Bots and Compose Extensions – available in 1:1 chat
• Personal Tabs (“Static”) – available to end users via the App bar or alongside 1:1 bots
Tabs - Bring your own Service
• Light-weight Javascript APIs to tie your experience to Teams context
Connectors – Leverage the Connectors Developer Portal
• Build once, run on both Outlook and Teams
• Use new Actionable Cards layouts
Bots – Build using the Bot Framework
• Use the .NET and Node.js SDKs, or call the REST endpoints with your language of
choice
• Teams Extension SDKs facilitate easy access to Teams-specific functionality
• Flag important messages for inclusion in Activity Feed
Compose Extensions – Reuse your bot
• Use the .NET and Node.js SDKs, or call the REST endpoints with your language of
choice
• Teams Extension SDKs facilitate easy access to Teams-specific functionality
These are your services, hosted by you,
in your cloud
Build, test, deploy are your processes
For testing within Microsoft Teams,
create an Apps package, and sideload
into a team
ISVs – Distribute through the Office Store
• Create or use your existing DevCenter / Seller
Dashboard account
• Upload your package and enter your product page
metadata
• Office Store Validation ensure compliance with Office
Store Policy
• Validated apps are published into the Office Store and
will appear in Microsoft Teams Discovery view
Line-of-Business apps – Sideload your package
• Leverage the same testing methodology to deploy
within your org
• Note: Enhanced LOB support coming soon
Tabs
Embed-ready web UX on
web/desktop, deep link to native
apps on mobile
Leverages Microsoft Teams Tab
Library javascript for context and
interactivity
Team or Personal Scope
Configuration Page: page used
to add or update the tab and set
content page
Content Page: the primary page
displayed in the tab
Remove Page: optional page
displayed when a tab is removed
Used to add/edit a tab
Must reference Microsoft Teams Tab
Library
Sets the contentUrl for the tab
Calls setSettings to save tab
configuration
Must call setValidityState to enable
the save button and notifySuccess
microsoftTeams.initialize();
microsoftTeams.settings.registerOnSaveHandler(function
(saveEvent){
microsoftTeams.settings.setSettings({
entityId: "someid",
contentUrl: "https://somedomain/tab.html",
suggestedDisplayName: "Tab Title",
websiteUrl: "https://somedomain/info.html",
removeUrl: "https://somedomain/tabremove.html"
});
saveEvent.notifySuccess();
});
function onSaveClick() {
microsoftTeams.settings.setValidityState(true);
}
getContext returns team/channel context:
• tid – id of tenant
• groupId – id of the O365 group
• teamId – id of the team
• channelId – id of the channel
• entityId – id of the entity
• theme – theme of the teams client
• locale – the locale of the client
• upn – UPN of the user
microsoftTeams.getContext(function (context) {
// context contains all context info
});
Share a Link from your Tab
Trigger the creation of a deep link to a specific Entity for a
user to copy / paste into a conversation.
Resultant link may be clicked on by any user to launch the
tab and navigate directly to that Entity.
Generate your own Deep Link
Programmatically create your own link, for use via bot or
other code flows.
microsoftTeams.shareDeepLink({
subEntityId: <subEntityId>,
subEntityLabel: <subEntityLabel>,
subEntityWebUrl: <subEntityWebUrl>
})
https://teams.microsoft.com/l/entity/
<appId>/<entityId>
?webUrl=<entityWebUrl>
&label=<entityLabel>
&context=<context>
Tabs in Microsoft Teams
• Put information at the fingertips of users
• Leverage collaborative nature of the product
• Minimize context switching – easy to find what users needs
• Focus on content that makes sense in the solution
• Minimize extra chrome – focus on what you want the user to do
• Design for bite-size tasks – power users should use your full SaaS
Configurable Tabs
• In a channel, tabs should allow the user to configure the view to the
relevant content
• Content should be the same for all users – leverage collaboration
• Content should be locked – don’t allow users to browse away
Static Tabs
• In personal scope, this content should be the relevant for either the all-up
app (e.g. Help, FAQ, forums) or for a personal view of the experience
Bots
Web Service you create and host, using
whatever web technology you prefer (though
we recommend Node.js or .NET on Azure)
Built using Microsoft Bot Framework,
leverage other tech like LUIS
Node.js and .NET/C# libraries, or call REST
APIs directly
New Microsoft Teams Extension libraries
(Node.js and .NET) facilitate channel-
specific functionality
Set up basic development environment and install Bot Builder and
Microsoft Teams extension SDKs for chosen language
Leverage existing Bot Framework sample or Teams Getting started
sample
Run locally in the Bot Emulator
Register your bot in the Bot Framework Dev Portal
• Set a unique bot name and handle
• Set your bot Endpoint – your hosted domain, or your debug instance (we recommend
Ngrok)
• Create an AppID (aka BotID) and Password
• Add Microsoft Teams as a Channel
Note: for 1:1 bot, you may reference your bot directly via its AppID
Enter your AppID and Password into your Development environment
Build and publish or run locally with Ngrok
Create a Teams App Manifest
• We have provided a SimpleBot package in MSDN –
a basic bot manifest with sample icons
Add your BotID in the Bots object
Sideload into a Team
{
"manifestVersion": "1.0",
"version": "1.0.0",
“id": "%APP_GUID%",
"packageName": "com.samples.samplebot",
"developer": {
"name": "Microsoft",
"websiteUrl": "https://www.microsoft.com",
"privacyUrl": "https://www.microsoft.com/privacy",
"termsOfUseUrl": "https://www.microsoft.com/termsofuse"
},
"name": {
"short": "Sample Bot App"
},
"description": {
"short": "This is a sample bot manifest",
"full": "This is a sample bot manifest that has the bare minimum you need for a bot, which
will work in Teams and Personal scopes."
},
"icons": {
"outline": "contoso20x20.png",
"color": "contoso96x96.png"
},
"accentColor": "#60A18E",
"bots": [
{
"botId": "%BOT_FRAMEWORK_ID%",
"scopes": [
"team",
"personal"
]
}
],
"permissions": [
"identity",
"messageTeamMembers"
]
}
Responsive messages (via 1:1 or @mentioning in channel)
Proactively create messages
• Create direct (1:1) message – must know user ID
• Create new channel reply – bot must be added to team and know channel
information
Update messages sent by Bot
One-way only – e.g. push notifications
User to bot
• Plain or rich text
• Inline images
• Note: files not currently supported
Bot to user
• Plain text
• Markdown or XML
• Cards
• Hero Cards
• Thumbnails
• Sign-in
• Carousel or List layouts
• Buttons
• openUrl – open in browser
• imBack – trigger chat response
• invoke – silent JSON payload
Bot only listens to @mentions
• Replies go to the conversation thread
Inbound payload in channels as flagged as
isGroup and contains Teams channel data:
"channelData": {
"channel": {
"id": "19:293ecdb923ac4458a5c23661b505fc84@thread.skype",
},
"team": {
"id": "19:293ecdb923ac4458a5c23661b505fc84@thread.skype"
},
"tenant": {
"id": "72f988bf-86f1-41af-91ab-2d7cd011db47"
}
}
Retrieve a list of all team members, including:
• Name
• Email
• AAD Object
• UPN
Retrieve a list of all channels
@Mentioning users
Proactively create New Reply chain
Team/channel event monitoring
• User addition/remove
• Channel creation/removal/renaming
Bots in Microsoft Teams
• Whether used as a CLI for your SaaS, or a conversation bot to facilitate work,
create the experience that makes the most sense for your product.
• Take advantage of scope to provide the appropriate information in channel
or via 1:1.
• Leverage the Bot Framework and Microsoft Teams Extension SDK to gain
insight to the team and channel, or act as an intelligent notification system.
• Leverage Static Tabs to provide additional help and user education, right
alongside the chat stream.
Compose Extensions
Cloud-hosted service that listens to user
requests and responds with cards or rich
media
Leverage the Bot you’ve already built, or
build another
Define commands and parameters in the
manifest.json
Handle via Bot Framework activity,
leveraging the Microsoft Bot Extension
SDKs
"composeExtensions": [
{
"botId": "57a3c29f-1fc5-4d97-a142-35bb662b7b23",
"scopes": [
"personal"
],
"commands": [{
"id": "searchCmd",
"description": "Search Bing for information
on the web",
"title": "Search",
"initialRun": "true",
"parameters": [{
"name": "searchKeyword",
"description": "Enter your search
keywords",
"title": "Keywords"
}]
}
]
}
],
Compose Extensions in Microsoft Teams
• Share content that makes sense in conversations.
• Add on as part of your core Bot offering to facilitate easier management.
• Take advantage of the rich card types provided as part of the platform.
• Optimize search results to keep compose extensions snappy and responsive.
Connectors
Leverage webhooks to send activity into
Teams
Build your own connector, registering on
the Connector Developer Portal
Simply add Connector ID to manifest.json
Leverage new Actionable Messages, to
allow users to get inline work done
Activity Feed
Use the Activity Feed to send important
information to your users
Leverage your existing Bot, to tag specific
messages as notification alerts
Encode a deep link to your entity (tab) to allow
one-click navigation to your content
Putting it all together
Channel Tabs
• Sharing group
information
• Pin information or tools
important for the
channel
Connectors
• Simple push
notifications across
channels (Outlook &
Teams)
Notifications
• Get work done
inline
• Keep users focused
on tasks that matter
Channel Bots
• Coordinate the
group
• Broadly share
• Push notifications
Compose Extensions
• Provide contextual
shortcuts to information
users need
Personal Tabs
• Focus on the user
• Provide help or other
information
Personal Bots
• Simplify commands
• Q&A
• Provide individual
insight
Channel Tabs
• Team account list
• Target / metrics
dashboard
Connectors
• Simple push
notification from
other tools
Notifications
• Flag important
action items
Channel Bots
• Channel
notifications of wins
/ losses
• In-group
opportunity queries
Compose Extensions
• Quick way to send links
to opportunities
Personal Tabs
• Filtered account list
• Personal dashboard
Personal Bots
• Personal queries
Channel Tabs
• Project Kanban
• Task list
• Project schedule
• Burndown chart
• Other dashboards
Connectors
• Simple push
notification from
other tools
Notifications
• Flag important
action items
Channel Bots
• Channel
notifications on
status changes
• Group queries
Compose Extensions
• Quick way to send links
to tasks
Personal Tabs
• Personal to-do / tasks
Personal Bots
• Personal queries
Fundamentals of
Microsoft Teams
Teams application packaging and testing
Environment
• Download and install Visual Studio 2017 https://www.visualstudio.com/
• Download and install Visual Studio Code https://code.visualstudio.com/
• Download and install NodeJS https://nodejs.org/en/
• Download and extract ngrok https://ngrok.com/
Enable Sideloading
1. Sign in to Office 365 with your administrator account.
2. Select Admin to go to the Office 365 Admin Center.
3. From Settings, select Services & add-ins or Apps.
4. From the list of services and add-ins, or apps, select Microsoft Teams.
5. On the Microsoft Teams settings screen, switch both Allow external apps in Microsoft Teams
and Allow sideloading of external apps to On, and then select Save.
Enable Script Lab
1. After log-in, go to Admin Center
2. Go to settings – select Services & Add-ins
3. Upload Add-ins
4. When new Add-ins page shows up, search “Script Lab”, then click “Add” and follow instruction on
the page till completion
Developer Preview
Lab Files
Get lab files:
- https://goo.gl/Z3jMZ3
Get full training:
- git clone https://github.com/OfficeDev/TrainingContent.git
How to create a Teams App
Develop components
HTML
TypeScript / JavaScript
.NET
Integrate with Teams
Microsoft Teams JavaScript Library
Bot Builder SDK - Node.js & C#
Package and deploy
Host web pages and services
Create and package manifest
Sideload/publish package
Demo
Create and test a basic Teams App using Yeoman
Hands On
Lab 04 – Exercise 1
Fundamentals of
Microsoft Teams
Build a basic Microsoft Teams Bot
Build a basic
Microsoft Teams Bot
Overview of building a Microsoft Teams Bot
Bot Framework vs Webhook (Custom Bot)
Conversation Basics
Channel Conversations and 1:1 Conversations
Messages, Cards and Actions
Events
Testing your Bot
DEMO
Overview of building a Microsoft Teams Bot
Design a great bot
Be responsive – respond to
messages and events
Recognize and respond to
questions and non-questions
Have a personality
Develop your bot
Bot Builder SDK for .NET
Bot Builder SDK for Node.js
Register and deploy your bot
Get a Bot ID and App ID/Secret
and configure bot
Make sure bot is reachable from the internet
Enable analytics
Examples of bot
personality and
response types
Conversation basics
Activity objects are used to pass information back and forth between bot and channel (or user).
Messages property
Text (Plain / Markdown)
Attachments (Simple media / Cards)
Entities (Users, Bot client)
Dialogs manage conversation flow
Pre & Post events for prompts & replies
Dialog stack and state managed by Bot Framework
Values passed to/from dialogs
StateService
User
Conversation
Private (User in Conversation)
Channel conversations and 1:1 conversations
Channel conversation
Access to channel data, including members
Events when users added/removed from channel
Messages will contain ‘at’ (@) references
1:1 conversation
Access only to user – not team
Event when user initiates conversation
No ‘at’ references
Messages – Text formats
Format From user to bot From bot to user Notes
Rich text Basic markdown, no tables
Pictures
Maximum 1024×1024 and 1 MB in PNG, JPEG, or GIF format; animated
GIF not officially supported
Cards Currently supports Hero, Thumbnail, and Office 365 Connector cards
Emojis Currently supports emojis via UTF-16 (such as U+1F600 for grinning face)
Cards
Hero
Largest card
Best used for articles, long descriptions
or scenarios where your image is telling
most of the story
Thumbnail
Short and sweet
Ideal for short answers, or if you want to
return several cards at once to provide options
Good for deep link to tab or service
Office 365 Connector Card
Most flexible
Provides for multiple sections, images and fields
Also supported in O365 Groups (Exchange)
Actions
CardAction.Type CardAction.Value
openUrl URL to be opened in the built-in browser
imBack Text of the message to send to the bot (from the user who clicked the button or tapped the card).
This message (from user to bot) will be visible to all conversation participants
*Not recommended for bots in channels
invoke Payload of message to send to the bot (from the user who clicked the button or tapped the card).
This message will not be visible.
Events
Activity objects are used to pass information back and forth between bot and channel (or user).
Activities can represent Events, denoted by ActivityType == ‘conversationUpdate’
Team Member Events
teamMemberAdded
teamMemberRemoved
Payload object contains
added/removed members
*Adding bot fires this event
Channel Events
channelCreated
channelRenamed
channelDeleted
ChannelData object reflects
current state
Team Events
teamRenamed
ChannelData object reflects
current state
Testing your Bot
Bot registration portal
Help confirm registration settings
Simulates 1:1 conversation
Bot Framework Emulator
Separate download
Does not require registration
Can connect to bot on localhost
Supports speech recognition
Send sample Team Member Events
ngrok Tunnel
Separate download
Forwards internet requests to local machine
Allows inspection of request/response
Demo
Create a basic Teams Bot using Visual Studio
Hands On
Lab 04 – Exercise 2
Fundamentals of
Microsoft Teams
Build a Microsoft Teams Tab
Build a Microsoft
Teams Tab
Overview of building a Microsoft Teams Tab
Tab content and configuration
Interacting with Teams and External Systems
Azure Active Directory and Microsoft Graph
DEMO
Overview of building a Microsoft Teams Tab
Design a great tab
Select relevant app functionality
Scope and focus the user experience
Integrate and streamline access
Develop your tab
HTML/JavaScript/TypeScript
REST services
Deep Linking and context
Deploy your tab
Sideload to Teams app
Submit to Office Store
Tab Configuration and Content
Tab Configuration
Configured in manifest
Displayed when Tab added to Channel
Collect information
Call setSettings() specifying Content Url and Entity Id
Tab Content
Rendered in IFRAME
Url specified by configuration page
Inspect context for EntityId/SubEntityId
Retrieve state based on Entity/SubEntity/User
Interacting with Microsoft Teams
Teams API provides context for User / Team / Organization
Getting Context through URL placeholders
Placeholders specified in URL in manifest
Resolved at runtime
Placeholders for each property of Context object
{upn}, {teamId}
Getting Context through the JavaScript library
Library provides function to get context
microsoftTeams.getContext()
Asynchronous method with only success callback
Returns context object
Property Description
teamId The team ID in the format 19:[id]@thread.skype
channelId The channel ID in the format 19:[id]@thread.skype
Locale Lowercase lang-locale
theme default | dark | contrast
entityId The entity id you set up on your config page
subEntityId The sub entity id you set up on your config page
upn The user identifier in email format
tid Guid identifying the current Tenant ID
groupId Guid identifying the current O365 Group ID
Interacting with external services
Authenticating
Authentication cannot occur in IFRAME
Teams JavaScript library facilitates popup and
cross-window communication
microsoftTeams.authentication.authenticate({
url: <auth URL>,
width: <width>,
height: <height>,
successCallback: <successCallback>,
failureCallback: <failureCallback>})
In <auth URL> signal result and pass data
microsoftTeams.authentication.notifySuccess(token)
microsoftTeams.authentication.notifyFailure(err)
Redirecting across domains
Tabs can only show pages in validDomains list of manifest
Call microsoftTeams.navigateCrossDomain(yourNewUrl) to
request the IFRAME containing your page is redirected to the
specified URL.
(Could also display page in popup via authenticate)
Hands On
Lab 04 – Exercise 3
Issuewith MSAL:
npm install msal@0.1.1 --save
Call to action
Join Office 365 developer program
https://dev.office.com/devprogram
to leverage all resources for Office 365
development learning
Build applications on Office 365 platform
Attend MVP led local community events to
continue learning on Office 365 development
Share your feedback on Bootcamp at
https://aka.ms/o365devbootcampfeedback

Weitere ähnliche Inhalte

Was ist angesagt?

Presentation on Microsoft Teams
Presentation on Microsoft Teams Presentation on Microsoft Teams
Presentation on Microsoft Teams SoHo Dragon
 
Microsoft Teams A New Way To Manage Projects, Connect, and Collaborate With...
Microsoft Teams   A New Way To Manage Projects, Connect, and Collaborate With...Microsoft Teams   A New Way To Manage Projects, Connect, and Collaborate With...
Microsoft Teams A New Way To Manage Projects, Connect, and Collaborate With...Haniel Croitoru
 
Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020Microsoft 365 Developer
 
Microsoft teams planning-workshop-dec2017
Microsoft teams planning-workshop-dec2017Microsoft teams planning-workshop-dec2017
Microsoft teams planning-workshop-dec2017jonsacri
 
Introduction to microsoft teams
Introduction to microsoft teamsIntroduction to microsoft teams
Introduction to microsoft teamsStuartDow5
 
What is Microsoft Teams?
What is Microsoft Teams?What is Microsoft Teams?
What is Microsoft Teams?Deepika Gandhi
 
Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0
Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0
Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0SkyeNets Technologies LLC
 
Microsoft Teams community call-September 2019
Microsoft Teams community call-September 2019Microsoft Teams community call-September 2019
Microsoft Teams community call-September 2019Microsoft 365 Developer
 
Microsoft Teams – The Future of Teamwork in Office 365
Microsoft Teams – The Future of Teamwork in Office 365Microsoft Teams – The Future of Teamwork in Office 365
Microsoft Teams – The Future of Teamwork in Office 365WinWire Technologies Inc
 
Webinar: Deploy Microsoft Teams and stay in control
Webinar: Deploy Microsoft Teams and stay in controlWebinar: Deploy Microsoft Teams and stay in control
Webinar: Deploy Microsoft Teams and stay in controlShareGate
 
Learn More About Microsoft Teams
Learn More About Microsoft Teams Learn More About Microsoft Teams
Learn More About Microsoft Teams Dock 365
 
Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018Microsoft 365 Developer
 
Office 365 Groups? Microsoft Teams? … Confused? Here's some help.
Office 365 Groups? Microsoft Teams? … Confused? Here's some help.Office 365 Groups? Microsoft Teams? … Confused? Here's some help.
Office 365 Groups? Microsoft Teams? … Confused? Here's some help.Adam Levithan
 
Microsoft Teams Overview
Microsoft Teams OverviewMicrosoft Teams Overview
Microsoft Teams OverviewSara Barbosa
 
Microsoft Teams Governance and Automation
Microsoft Teams Governance and AutomationMicrosoft Teams Governance and Automation
Microsoft Teams Governance and AutomationJoel Oleson
 
Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...
Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...
Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...Joel Oleson
 
Sydney Microsoft 365 Meetup Microsoft teams
Sydney Microsoft 365 Meetup Microsoft teamsSydney Microsoft 365 Meetup Microsoft teams
Sydney Microsoft 365 Meetup Microsoft teamsAnupam Ranku
 
Live events in Microsoft Teams , Yammer and Stream- When to use what
Live events in Microsoft Teams , Yammer and Stream- When to use whatLive events in Microsoft Teams , Yammer and Stream- When to use what
Live events in Microsoft Teams , Yammer and Stream- When to use whatVignesh Ganesan I Microsoft MVP
 
Best practices for deploying share point end to-end
Best practices for deploying share point end to-endBest practices for deploying share point end to-end
Best practices for deploying share point end to-endHaniel Croitoru
 

Was ist angesagt? (20)

Presentation on Microsoft Teams
Presentation on Microsoft Teams Presentation on Microsoft Teams
Presentation on Microsoft Teams
 
Microsoft Teams A New Way To Manage Projects, Connect, and Collaborate With...
Microsoft Teams   A New Way To Manage Projects, Connect, and Collaborate With...Microsoft Teams   A New Way To Manage Projects, Connect, and Collaborate With...
Microsoft Teams A New Way To Manage Projects, Connect, and Collaborate With...
 
Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020
 
Microsoft teams planning-workshop-dec2017
Microsoft teams planning-workshop-dec2017Microsoft teams planning-workshop-dec2017
Microsoft teams planning-workshop-dec2017
 
Introduction to microsoft teams
Introduction to microsoft teamsIntroduction to microsoft teams
Introduction to microsoft teams
 
What is Microsoft Teams?
What is Microsoft Teams?What is Microsoft Teams?
What is Microsoft Teams?
 
Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0
Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0
Microsoft Teams - Taming the Chaos with Valo Teamwork 2.0
 
Microsoft Teams community call-September 2019
Microsoft Teams community call-September 2019Microsoft Teams community call-September 2019
Microsoft Teams community call-September 2019
 
Microsoft Teams – The Future of Teamwork in Office 365
Microsoft Teams – The Future of Teamwork in Office 365Microsoft Teams – The Future of Teamwork in Office 365
Microsoft Teams – The Future of Teamwork in Office 365
 
Webinar: Deploy Microsoft Teams and stay in control
Webinar: Deploy Microsoft Teams and stay in controlWebinar: Deploy Microsoft Teams and stay in control
Webinar: Deploy Microsoft Teams and stay in control
 
Learn More About Microsoft Teams
Learn More About Microsoft Teams Learn More About Microsoft Teams
Learn More About Microsoft Teams
 
Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018Build Modern Apps on Microsoft Teams-September 2018
Build Modern Apps on Microsoft Teams-September 2018
 
Office 365 Groups? Microsoft Teams? … Confused? Here's some help.
Office 365 Groups? Microsoft Teams? … Confused? Here's some help.Office 365 Groups? Microsoft Teams? … Confused? Here's some help.
Office 365 Groups? Microsoft Teams? … Confused? Here's some help.
 
Microsoft Teams Overview
Microsoft Teams OverviewMicrosoft Teams Overview
Microsoft Teams Overview
 
Microsoft Teams Governance and Automation
Microsoft Teams Governance and AutomationMicrosoft Teams Governance and Automation
Microsoft Teams Governance and Automation
 
What's new in Microsoft Teams
What's new in Microsoft Teams What's new in Microsoft Teams
What's new in Microsoft Teams
 
Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...
Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...
Microsoft Teams as a Platform - Microsoft 365 Application Platform Maturity M...
 
Sydney Microsoft 365 Meetup Microsoft teams
Sydney Microsoft 365 Meetup Microsoft teamsSydney Microsoft 365 Meetup Microsoft teams
Sydney Microsoft 365 Meetup Microsoft teams
 
Live events in Microsoft Teams , Yammer and Stream- When to use what
Live events in Microsoft Teams , Yammer and Stream- When to use whatLive events in Microsoft Teams , Yammer and Stream- When to use what
Live events in Microsoft Teams , Yammer and Stream- When to use what
 
Best practices for deploying share point end to-end
Best practices for deploying share point end to-endBest practices for deploying share point end to-end
Best practices for deploying share point end to-end
 

Ähnlich wie Office 365 Developer Bootcamp: Microsoft Teams

ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
ESPC19 - Supercharge Your Teams Experience with Advanced Development TechniquesESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
ESPC19 - Supercharge Your Teams Experience with Advanced Development TechniquesSébastien Levert
 
Building apps using azure for microsoft teams
Building apps using azure for microsoft teamsBuilding apps using azure for microsoft teams
Building apps using azure for microsoft teamsJenkins NS
 
CCI2018 - Le possibilità di estensione di Microsoft Teams
CCI2018 - Le possibilità di estensione di Microsoft TeamsCCI2018 - Le possibilità di estensione di Microsoft Teams
CCI2018 - Le possibilità di estensione di Microsoft Teamswalk2talk srl
 
Exploring Microsoft Teams extensibility
Exploring Microsoft Teams extensibilityExploring Microsoft Teams extensibility
Exploring Microsoft Teams extensibilityWes Hackett
 
Target SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint FrameworkTarget SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint FrameworkHaaron Gonzalez
 
Build an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teamsBuild an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teamsJenkins NS
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionThomas Daly
 
SPVIE - Slidedeck Get started with developing for Microsoft Teams
SPVIE - Slidedeck Get started with developing for Microsoft TeamsSPVIE - Slidedeck Get started with developing for Microsoft Teams
SPVIE - Slidedeck Get started with developing for Microsoft TeamsPaul Keijzers
 
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFxWebinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFxSébastien Levert
 
Microsoft Viva Connections - Set up and Extend with SPFx
Microsoft Viva Connections - Set up and Extend with SPFxMicrosoft Viva Connections - Set up and Extend with SPFx
Microsoft Viva Connections - Set up and Extend with SPFxNanddeep Nachan
 
ESPC Teams week Microsoft Teams & Bot Framework – a Developer’s Perspective
ESPC Teams week Microsoft Teams & Bot Framework – a Developer’s PerspectiveESPC Teams week Microsoft Teams & Bot Framework – a Developer’s Perspective
ESPC Teams week Microsoft Teams & Bot Framework – a Developer’s PerspectiveThomas Gölles
 
ESPC19 - Build Your First Microsoft Teams App Using SPFx
ESPC19 - Build Your First Microsoft Teams App Using SPFxESPC19 - Build Your First Microsoft Teams App Using SPFx
ESPC19 - Build Your First Microsoft Teams App Using SPFxSébastien Levert
 
Building share point framework solutions
Building share point framework solutionsBuilding share point framework solutions
Building share point framework solutionsDipti Chhatrapati
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
 
Target SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint FrameworkTarget SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint FrameworkHaaron Gonzalez
 
Microsoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveMicrosoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveThomas Gölles
 
Microsoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveMicrosoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveThomas Gölles
 
Intégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft TeamsIntégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft TeamsGuillaume Meyer
 
VS Code and Modern Development Environment Preview
VS Code and Modern Development Environment PreviewVS Code and Modern Development Environment Preview
VS Code and Modern Development Environment PreviewRoberto Stefanetti
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts Knut Relbe-Moe [MVP, MCT]
 

Ähnlich wie Office 365 Developer Bootcamp: Microsoft Teams (20)

ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
ESPC19 - Supercharge Your Teams Experience with Advanced Development TechniquesESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
 
Building apps using azure for microsoft teams
Building apps using azure for microsoft teamsBuilding apps using azure for microsoft teams
Building apps using azure for microsoft teams
 
CCI2018 - Le possibilità di estensione di Microsoft Teams
CCI2018 - Le possibilità di estensione di Microsoft TeamsCCI2018 - Le possibilità di estensione di Microsoft Teams
CCI2018 - Le possibilità di estensione di Microsoft Teams
 
Exploring Microsoft Teams extensibility
Exploring Microsoft Teams extensibilityExploring Microsoft Teams extensibility
Exploring Microsoft Teams extensibility
 
Target SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint FrameworkTarget SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint Framework
 
Build an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teamsBuild an app from scratch using teams app studio for ms teams
Build an app from scratch using teams app studio for ms teams
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
SPVIE - Slidedeck Get started with developing for Microsoft Teams
SPVIE - Slidedeck Get started with developing for Microsoft TeamsSPVIE - Slidedeck Get started with developing for Microsoft Teams
SPVIE - Slidedeck Get started with developing for Microsoft Teams
 
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFxWebinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
 
Microsoft Viva Connections - Set up and Extend with SPFx
Microsoft Viva Connections - Set up and Extend with SPFxMicrosoft Viva Connections - Set up and Extend with SPFx
Microsoft Viva Connections - Set up and Extend with SPFx
 
ESPC Teams week Microsoft Teams & Bot Framework – a Developer’s Perspective
ESPC Teams week Microsoft Teams & Bot Framework – a Developer’s PerspectiveESPC Teams week Microsoft Teams & Bot Framework – a Developer’s Perspective
ESPC Teams week Microsoft Teams & Bot Framework – a Developer’s Perspective
 
ESPC19 - Build Your First Microsoft Teams App Using SPFx
ESPC19 - Build Your First Microsoft Teams App Using SPFxESPC19 - Build Your First Microsoft Teams App Using SPFx
ESPC19 - Build Your First Microsoft Teams App Using SPFx
 
Building share point framework solutions
Building share point framework solutionsBuilding share point framework solutions
Building share point framework solutions
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 
Target SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint FrameworkTarget SharePoint and Teams with SharePoint Framework
Target SharePoint and Teams with SharePoint Framework
 
Microsoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveMicrosoft Teams - A developers perspective
Microsoft Teams - A developers perspective
 
Microsoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveMicrosoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspective
 
Intégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft TeamsIntégrez vos applications métiers dans Microsoft Teams
Intégrez vos applications métiers dans Microsoft Teams
 
VS Code and Modern Development Environment Preview
VS Code and Modern Development Environment PreviewVS Code and Modern Development Environment Preview
VS Code and Modern Development Environment Preview
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
 

Mehr von David Schneider

David Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider
 
Microsoft Teams as a Development Platform
Microsoft Teams as a Development PlatformMicrosoft Teams as a Development Platform
Microsoft Teams as a Development PlatformDavid Schneider
 
SPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engineSPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engineDavid Schneider
 
Global Azure BootCamp: Azure Logic Apps
Global Azure BootCamp: Azure Logic AppsGlobal Azure BootCamp: Azure Logic Apps
Global Azure BootCamp: Azure Logic AppsDavid Schneider
 
Oliver Hofmann: Office Graph
Oliver Hofmann: Office GraphOliver Hofmann: Office Graph
Oliver Hofmann: Office GraphDavid Schneider
 
SharePoint 2016 Lauch Event
SharePoint 2016 Lauch EventSharePoint 2016 Lauch Event
SharePoint 2016 Lauch EventDavid Schneider
 
SharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu FindenSharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu FindenDavid Schneider
 
SharePoint Lösungen für die Zukunft
SharePoint Lösungen für die ZukunftSharePoint Lösungen für die Zukunft
SharePoint Lösungen für die ZukunftDavid Schneider
 
Ein modernes DMS mit SharePoint
Ein modernes DMS mit SharePointEin modernes DMS mit SharePoint
Ein modernes DMS mit SharePointDavid Schneider
 
News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015David Schneider
 
News von der Microsoft Ignite
News von der Microsoft IgniteNews von der Microsoft Ignite
News von der Microsoft IgniteDavid Schneider
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
SharePoint Days 2014 - Fit für Office 365
SharePoint Days 2014  - Fit für Office 365SharePoint Days 2014  - Fit für Office 365
SharePoint Days 2014 - Fit für Office 365David Schneider
 
SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365David Schneider
 
ShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam istShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam istDavid Schneider
 
SharePoint 2013 Search Driven Websites Collaboration Days 2014 David Schneider
SharePoint 2013 Search Driven Websites Collaboration Days 2014 David SchneiderSharePoint 2013 Search Driven Websites Collaboration Days 2014 David Schneider
SharePoint 2013 Search Driven Websites Collaboration Days 2014 David SchneiderDavid Schneider
 
Mehrsprachige Intranets mit SharePoint 2010
Mehrsprachige Intranets mit SharePoint 2010Mehrsprachige Intranets mit SharePoint 2010
Mehrsprachige Intranets mit SharePoint 2010David Schneider
 
SharePoint Community Mittelland @ isolutions: SharePoint in der Cloud
SharePoint Community Mittelland @ isolutions: SharePoint in der CloudSharePoint Community Mittelland @ isolutions: SharePoint in der Cloud
SharePoint Community Mittelland @ isolutions: SharePoint in der CloudDavid Schneider
 
SharePoint 2013 Search Driven websites
SharePoint 2013 Search Driven websitesSharePoint 2013 Search Driven websites
SharePoint 2013 Search Driven websitesDavid Schneider
 

Mehr von David Schneider (20)

David Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive Services
 
Microsoft Teams as a Development Platform
Microsoft Teams as a Development PlatformMicrosoft Teams as a Development Platform
Microsoft Teams as a Development Platform
 
SPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engineSPS Zurich 2018 - Azure Logic Apps: the new workflow engine
SPS Zurich 2018 - Azure Logic Apps: the new workflow engine
 
Azure Logic Apps
Azure Logic AppsAzure Logic Apps
Azure Logic Apps
 
Global Azure BootCamp: Azure Logic Apps
Global Azure BootCamp: Azure Logic AppsGlobal Azure BootCamp: Azure Logic Apps
Global Azure BootCamp: Azure Logic Apps
 
Oliver Hofmann: Office Graph
Oliver Hofmann: Office GraphOliver Hofmann: Office Graph
Oliver Hofmann: Office Graph
 
SharePoint 2016 Lauch Event
SharePoint 2016 Lauch EventSharePoint 2016 Lauch Event
SharePoint 2016 Lauch Event
 
SharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu FindenSharePoint 8 Tipps um besser zu Finden
SharePoint 8 Tipps um besser zu Finden
 
SharePoint Lösungen für die Zukunft
SharePoint Lösungen für die ZukunftSharePoint Lösungen für die Zukunft
SharePoint Lösungen für die Zukunft
 
Ein modernes DMS mit SharePoint
Ein modernes DMS mit SharePointEin modernes DMS mit SharePoint
Ein modernes DMS mit SharePoint
 
News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015
 
News von der Microsoft Ignite
News von der Microsoft IgniteNews von der Microsoft Ignite
News von der Microsoft Ignite
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
SharePoint Days 2014 - Fit für Office 365
SharePoint Days 2014  - Fit für Office 365SharePoint Days 2014  - Fit für Office 365
SharePoint Days 2014 - Fit für Office 365
 
SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365
 
ShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam istShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam ist
 
SharePoint 2013 Search Driven Websites Collaboration Days 2014 David Schneider
SharePoint 2013 Search Driven Websites Collaboration Days 2014 David SchneiderSharePoint 2013 Search Driven Websites Collaboration Days 2014 David Schneider
SharePoint 2013 Search Driven Websites Collaboration Days 2014 David Schneider
 
Mehrsprachige Intranets mit SharePoint 2010
Mehrsprachige Intranets mit SharePoint 2010Mehrsprachige Intranets mit SharePoint 2010
Mehrsprachige Intranets mit SharePoint 2010
 
SharePoint Community Mittelland @ isolutions: SharePoint in der Cloud
SharePoint Community Mittelland @ isolutions: SharePoint in der CloudSharePoint Community Mittelland @ isolutions: SharePoint in der Cloud
SharePoint Community Mittelland @ isolutions: SharePoint in der Cloud
 
SharePoint 2013 Search Driven websites
SharePoint 2013 Search Driven websitesSharePoint 2013 Search Driven websites
SharePoint 2013 Search Driven websites
 

Kürzlich hochgeladen

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Kürzlich hochgeladen (20)

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

Office 365 Developer Bootcamp: Microsoft Teams

  • 2. Agenda Time Topic / Activity Speaker 9.00 12.00 Introduction to Microsoft Teams Development David 12.00 13:00 Lunch Break 13.00 16:00 Getting Started with the Microsoft Graph Stefano 16.00 17.00 Sharing & Networking 17:00 SharePint Washbar
  • 4. Call to action Join Office 365 developer program https://dev.office.com/devprogram to leverage all resources for Office 365 development learning Build applications on Office 365 platform Attend MVP led local community events to continue learning on Office 365 development Share your feedback on Bootcamp at https://aka.ms/o365devbootcampfeedback
  • 6. Extensible platform Build apps with a rich set of capabilities to enable these higher-performing teams
  • 8.
  • 9. Reach your users in their chats, channels, notifications, and personal workspace Available now Bots Help users get tasks done in conversations Connectors Post rich updates to channels Tabs Surface rich content within Teams Office Store Drive engagement by submitting your app to the Office Store Actionable Messages Add rich interaction to your connector cards Activity Feed Engage users via feed notifications Compose Extensions Allow users to query and share rich cards in conversations Available in Developer Preview
  • 10. Rich surface area for your app As simple as hosting your existing web app Team productivity: within channels Personal productivity: app flyout Your services, experience, & users
  • 11. Push rich interactive cards into channels Users can take quick actions like comment, select options, set a date Uses incoming webhook API Fully supported in both Teams and Outlook
  • 12. Notify users personally via the activity feed Same API as sending bot messages Deep link straight into tabs
  • 13. Bots make it easy for users to interact with your app in Team conversations or 1:1 Built using Microsoft Bot Framework Complete tasks via basic commands, menu or natural language Rich Microsoft Teams features, e.g.  Input menus  Dynamic message updates  Integrate with tabs
  • 14. Personalize Teams Compose box with your App & Services content Users can query and insert your app content into conversations Example: Bug details from VSTS Example: Sales opportunities from CRM You can reuse services you built for Bots or Tabs
  • 15. Microsoft Teams Apps • With a single package, deliver one or more capabilities to end users, in contexts that make sense in your experience Single App definition – manifest.json Single package (.ZIP) used for Sideloading or Office Store submission
  • 16. Register and submit your app today to the Office Store Your app will be ready in the Developer Preview once approved
  • 17. Light up your experience how and where you want it: Teams Scope - your experience exists in the team context • Team owners may add your experience to a team: • Bots and Compose Extensions – available on all channels • Teams Tabs (“Configurable”) – added and customized on a per-channel basis Personal Scope – your experience exists in an individual user context • Individuals add the experiences they want for personal use • Bots and Compose Extensions – available in 1:1 chat • Personal Tabs (“Static”) – available to end users via the App bar or alongside 1:1 bots
  • 18. Tabs - Bring your own Service • Light-weight Javascript APIs to tie your experience to Teams context Connectors – Leverage the Connectors Developer Portal • Build once, run on both Outlook and Teams • Use new Actionable Cards layouts Bots – Build using the Bot Framework • Use the .NET and Node.js SDKs, or call the REST endpoints with your language of choice • Teams Extension SDKs facilitate easy access to Teams-specific functionality • Flag important messages for inclusion in Activity Feed Compose Extensions – Reuse your bot • Use the .NET and Node.js SDKs, or call the REST endpoints with your language of choice • Teams Extension SDKs facilitate easy access to Teams-specific functionality
  • 19. These are your services, hosted by you, in your cloud Build, test, deploy are your processes For testing within Microsoft Teams, create an Apps package, and sideload into a team
  • 20. ISVs – Distribute through the Office Store • Create or use your existing DevCenter / Seller Dashboard account • Upload your package and enter your product page metadata • Office Store Validation ensure compliance with Office Store Policy • Validated apps are published into the Office Store and will appear in Microsoft Teams Discovery view Line-of-Business apps – Sideload your package • Leverage the same testing methodology to deploy within your org • Note: Enhanced LOB support coming soon
  • 21. Tabs
  • 22. Embed-ready web UX on web/desktop, deep link to native apps on mobile Leverages Microsoft Teams Tab Library javascript for context and interactivity Team or Personal Scope
  • 23. Configuration Page: page used to add or update the tab and set content page Content Page: the primary page displayed in the tab Remove Page: optional page displayed when a tab is removed
  • 24. Used to add/edit a tab Must reference Microsoft Teams Tab Library Sets the contentUrl for the tab Calls setSettings to save tab configuration Must call setValidityState to enable the save button and notifySuccess microsoftTeams.initialize(); microsoftTeams.settings.registerOnSaveHandler(function (saveEvent){ microsoftTeams.settings.setSettings({ entityId: "someid", contentUrl: "https://somedomain/tab.html", suggestedDisplayName: "Tab Title", websiteUrl: "https://somedomain/info.html", removeUrl: "https://somedomain/tabremove.html" }); saveEvent.notifySuccess(); }); function onSaveClick() { microsoftTeams.settings.setValidityState(true); }
  • 25. getContext returns team/channel context: • tid – id of tenant • groupId – id of the O365 group • teamId – id of the team • channelId – id of the channel • entityId – id of the entity • theme – theme of the teams client • locale – the locale of the client • upn – UPN of the user microsoftTeams.getContext(function (context) { // context contains all context info });
  • 26. Share a Link from your Tab Trigger the creation of a deep link to a specific Entity for a user to copy / paste into a conversation. Resultant link may be clicked on by any user to launch the tab and navigate directly to that Entity. Generate your own Deep Link Programmatically create your own link, for use via bot or other code flows. microsoftTeams.shareDeepLink({ subEntityId: <subEntityId>, subEntityLabel: <subEntityLabel>, subEntityWebUrl: <subEntityWebUrl> }) https://teams.microsoft.com/l/entity/ <appId>/<entityId> ?webUrl=<entityWebUrl> &label=<entityLabel> &context=<context>
  • 27.
  • 28.
  • 29. Tabs in Microsoft Teams • Put information at the fingertips of users • Leverage collaborative nature of the product • Minimize context switching – easy to find what users needs • Focus on content that makes sense in the solution • Minimize extra chrome – focus on what you want the user to do • Design for bite-size tasks – power users should use your full SaaS
  • 30. Configurable Tabs • In a channel, tabs should allow the user to configure the view to the relevant content • Content should be the same for all users – leverage collaboration • Content should be locked – don’t allow users to browse away Static Tabs • In personal scope, this content should be the relevant for either the all-up app (e.g. Help, FAQ, forums) or for a personal view of the experience
  • 31. Bots
  • 32. Web Service you create and host, using whatever web technology you prefer (though we recommend Node.js or .NET on Azure) Built using Microsoft Bot Framework, leverage other tech like LUIS Node.js and .NET/C# libraries, or call REST APIs directly New Microsoft Teams Extension libraries (Node.js and .NET) facilitate channel- specific functionality
  • 33. Set up basic development environment and install Bot Builder and Microsoft Teams extension SDKs for chosen language Leverage existing Bot Framework sample or Teams Getting started sample Run locally in the Bot Emulator
  • 34. Register your bot in the Bot Framework Dev Portal • Set a unique bot name and handle • Set your bot Endpoint – your hosted domain, or your debug instance (we recommend Ngrok) • Create an AppID (aka BotID) and Password • Add Microsoft Teams as a Channel Note: for 1:1 bot, you may reference your bot directly via its AppID Enter your AppID and Password into your Development environment Build and publish or run locally with Ngrok
  • 35. Create a Teams App Manifest • We have provided a SimpleBot package in MSDN – a basic bot manifest with sample icons Add your BotID in the Bots object Sideload into a Team { "manifestVersion": "1.0", "version": "1.0.0", “id": "%APP_GUID%", "packageName": "com.samples.samplebot", "developer": { "name": "Microsoft", "websiteUrl": "https://www.microsoft.com", "privacyUrl": "https://www.microsoft.com/privacy", "termsOfUseUrl": "https://www.microsoft.com/termsofuse" }, "name": { "short": "Sample Bot App" }, "description": { "short": "This is a sample bot manifest", "full": "This is a sample bot manifest that has the bare minimum you need for a bot, which will work in Teams and Personal scopes." }, "icons": { "outline": "contoso20x20.png", "color": "contoso96x96.png" }, "accentColor": "#60A18E", "bots": [ { "botId": "%BOT_FRAMEWORK_ID%", "scopes": [ "team", "personal" ] } ], "permissions": [ "identity", "messageTeamMembers" ] }
  • 36. Responsive messages (via 1:1 or @mentioning in channel) Proactively create messages • Create direct (1:1) message – must know user ID • Create new channel reply – bot must be added to team and know channel information Update messages sent by Bot One-way only – e.g. push notifications
  • 37. User to bot • Plain or rich text • Inline images • Note: files not currently supported Bot to user • Plain text • Markdown or XML • Cards • Hero Cards • Thumbnails • Sign-in • Carousel or List layouts • Buttons • openUrl – open in browser • imBack – trigger chat response • invoke – silent JSON payload
  • 38. Bot only listens to @mentions • Replies go to the conversation thread Inbound payload in channels as flagged as isGroup and contains Teams channel data: "channelData": { "channel": { "id": "19:293ecdb923ac4458a5c23661b505fc84@thread.skype", }, "team": { "id": "19:293ecdb923ac4458a5c23661b505fc84@thread.skype" }, "tenant": { "id": "72f988bf-86f1-41af-91ab-2d7cd011db47" } }
  • 39. Retrieve a list of all team members, including: • Name • Email • AAD Object • UPN Retrieve a list of all channels @Mentioning users Proactively create New Reply chain Team/channel event monitoring • User addition/remove • Channel creation/removal/renaming
  • 40. Bots in Microsoft Teams • Whether used as a CLI for your SaaS, or a conversation bot to facilitate work, create the experience that makes the most sense for your product. • Take advantage of scope to provide the appropriate information in channel or via 1:1. • Leverage the Bot Framework and Microsoft Teams Extension SDK to gain insight to the team and channel, or act as an intelligent notification system. • Leverage Static Tabs to provide additional help and user education, right alongside the chat stream.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. Cloud-hosted service that listens to user requests and responds with cards or rich media Leverage the Bot you’ve already built, or build another Define commands and parameters in the manifest.json Handle via Bot Framework activity, leveraging the Microsoft Bot Extension SDKs "composeExtensions": [ { "botId": "57a3c29f-1fc5-4d97-a142-35bb662b7b23", "scopes": [ "personal" ], "commands": [{ "id": "searchCmd", "description": "Search Bing for information on the web", "title": "Search", "initialRun": "true", "parameters": [{ "name": "searchKeyword", "description": "Enter your search keywords", "title": "Keywords" }] } ] } ],
  • 48. Compose Extensions in Microsoft Teams • Share content that makes sense in conversations. • Add on as part of your core Bot offering to facilitate easier management. • Take advantage of the rich card types provided as part of the platform. • Optimize search results to keep compose extensions snappy and responsive.
  • 50.
  • 51. Leverage webhooks to send activity into Teams Build your own connector, registering on the Connector Developer Portal Simply add Connector ID to manifest.json Leverage new Actionable Messages, to allow users to get inline work done
  • 53.
  • 54.
  • 55.
  • 56. Use the Activity Feed to send important information to your users Leverage your existing Bot, to tag specific messages as notification alerts Encode a deep link to your entity (tab) to allow one-click navigation to your content
  • 57. Putting it all together
  • 58. Channel Tabs • Sharing group information • Pin information or tools important for the channel Connectors • Simple push notifications across channels (Outlook & Teams) Notifications • Get work done inline • Keep users focused on tasks that matter Channel Bots • Coordinate the group • Broadly share • Push notifications Compose Extensions • Provide contextual shortcuts to information users need Personal Tabs • Focus on the user • Provide help or other information Personal Bots • Simplify commands • Q&A • Provide individual insight
  • 59. Channel Tabs • Team account list • Target / metrics dashboard Connectors • Simple push notification from other tools Notifications • Flag important action items Channel Bots • Channel notifications of wins / losses • In-group opportunity queries Compose Extensions • Quick way to send links to opportunities Personal Tabs • Filtered account list • Personal dashboard Personal Bots • Personal queries
  • 60. Channel Tabs • Project Kanban • Task list • Project schedule • Burndown chart • Other dashboards Connectors • Simple push notification from other tools Notifications • Flag important action items Channel Bots • Channel notifications on status changes • Group queries Compose Extensions • Quick way to send links to tasks Personal Tabs • Personal to-do / tasks Personal Bots • Personal queries
  • 61. Fundamentals of Microsoft Teams Teams application packaging and testing
  • 62. Environment • Download and install Visual Studio 2017 https://www.visualstudio.com/ • Download and install Visual Studio Code https://code.visualstudio.com/ • Download and install NodeJS https://nodejs.org/en/ • Download and extract ngrok https://ngrok.com/
  • 63. Enable Sideloading 1. Sign in to Office 365 with your administrator account. 2. Select Admin to go to the Office 365 Admin Center. 3. From Settings, select Services & add-ins or Apps. 4. From the list of services and add-ins, or apps, select Microsoft Teams. 5. On the Microsoft Teams settings screen, switch both Allow external apps in Microsoft Teams and Allow sideloading of external apps to On, and then select Save.
  • 64. Enable Script Lab 1. After log-in, go to Admin Center 2. Go to settings – select Services & Add-ins 3. Upload Add-ins 4. When new Add-ins page shows up, search “Script Lab”, then click “Add” and follow instruction on the page till completion
  • 66. Lab Files Get lab files: - https://goo.gl/Z3jMZ3 Get full training: - git clone https://github.com/OfficeDev/TrainingContent.git
  • 67. How to create a Teams App Develop components HTML TypeScript / JavaScript .NET Integrate with Teams Microsoft Teams JavaScript Library Bot Builder SDK - Node.js & C# Package and deploy Host web pages and services Create and package manifest Sideload/publish package
  • 68. Demo Create and test a basic Teams App using Yeoman
  • 69. Hands On Lab 04 – Exercise 1
  • 70. Fundamentals of Microsoft Teams Build a basic Microsoft Teams Bot
  • 71. Build a basic Microsoft Teams Bot Overview of building a Microsoft Teams Bot Bot Framework vs Webhook (Custom Bot) Conversation Basics Channel Conversations and 1:1 Conversations Messages, Cards and Actions Events Testing your Bot DEMO
  • 72. Overview of building a Microsoft Teams Bot Design a great bot Be responsive – respond to messages and events Recognize and respond to questions and non-questions Have a personality Develop your bot Bot Builder SDK for .NET Bot Builder SDK for Node.js Register and deploy your bot Get a Bot ID and App ID/Secret and configure bot Make sure bot is reachable from the internet Enable analytics
  • 73. Examples of bot personality and response types
  • 74. Conversation basics Activity objects are used to pass information back and forth between bot and channel (or user). Messages property Text (Plain / Markdown) Attachments (Simple media / Cards) Entities (Users, Bot client) Dialogs manage conversation flow Pre & Post events for prompts & replies Dialog stack and state managed by Bot Framework Values passed to/from dialogs StateService User Conversation Private (User in Conversation)
  • 75. Channel conversations and 1:1 conversations Channel conversation Access to channel data, including members Events when users added/removed from channel Messages will contain ‘at’ (@) references 1:1 conversation Access only to user – not team Event when user initiates conversation No ‘at’ references
  • 76. Messages – Text formats Format From user to bot From bot to user Notes Rich text Basic markdown, no tables Pictures Maximum 1024×1024 and 1 MB in PNG, JPEG, or GIF format; animated GIF not officially supported Cards Currently supports Hero, Thumbnail, and Office 365 Connector cards Emojis Currently supports emojis via UTF-16 (such as U+1F600 for grinning face)
  • 77. Cards Hero Largest card Best used for articles, long descriptions or scenarios where your image is telling most of the story Thumbnail Short and sweet Ideal for short answers, or if you want to return several cards at once to provide options Good for deep link to tab or service Office 365 Connector Card Most flexible Provides for multiple sections, images and fields Also supported in O365 Groups (Exchange)
  • 78. Actions CardAction.Type CardAction.Value openUrl URL to be opened in the built-in browser imBack Text of the message to send to the bot (from the user who clicked the button or tapped the card). This message (from user to bot) will be visible to all conversation participants *Not recommended for bots in channels invoke Payload of message to send to the bot (from the user who clicked the button or tapped the card). This message will not be visible.
  • 79. Events Activity objects are used to pass information back and forth between bot and channel (or user). Activities can represent Events, denoted by ActivityType == ‘conversationUpdate’ Team Member Events teamMemberAdded teamMemberRemoved Payload object contains added/removed members *Adding bot fires this event Channel Events channelCreated channelRenamed channelDeleted ChannelData object reflects current state Team Events teamRenamed ChannelData object reflects current state
  • 80. Testing your Bot Bot registration portal Help confirm registration settings Simulates 1:1 conversation Bot Framework Emulator Separate download Does not require registration Can connect to bot on localhost Supports speech recognition Send sample Team Member Events ngrok Tunnel Separate download Forwards internet requests to local machine Allows inspection of request/response
  • 81. Demo Create a basic Teams Bot using Visual Studio
  • 82. Hands On Lab 04 – Exercise 2
  • 83. Fundamentals of Microsoft Teams Build a Microsoft Teams Tab
  • 84. Build a Microsoft Teams Tab Overview of building a Microsoft Teams Tab Tab content and configuration Interacting with Teams and External Systems Azure Active Directory and Microsoft Graph DEMO
  • 85. Overview of building a Microsoft Teams Tab Design a great tab Select relevant app functionality Scope and focus the user experience Integrate and streamline access Develop your tab HTML/JavaScript/TypeScript REST services Deep Linking and context Deploy your tab Sideload to Teams app Submit to Office Store
  • 86. Tab Configuration and Content Tab Configuration Configured in manifest Displayed when Tab added to Channel Collect information Call setSettings() specifying Content Url and Entity Id Tab Content Rendered in IFRAME Url specified by configuration page Inspect context for EntityId/SubEntityId Retrieve state based on Entity/SubEntity/User
  • 87. Interacting with Microsoft Teams Teams API provides context for User / Team / Organization Getting Context through URL placeholders Placeholders specified in URL in manifest Resolved at runtime Placeholders for each property of Context object {upn}, {teamId} Getting Context through the JavaScript library Library provides function to get context microsoftTeams.getContext() Asynchronous method with only success callback Returns context object Property Description teamId The team ID in the format 19:[id]@thread.skype channelId The channel ID in the format 19:[id]@thread.skype Locale Lowercase lang-locale theme default | dark | contrast entityId The entity id you set up on your config page subEntityId The sub entity id you set up on your config page upn The user identifier in email format tid Guid identifying the current Tenant ID groupId Guid identifying the current O365 Group ID
  • 88. Interacting with external services Authenticating Authentication cannot occur in IFRAME Teams JavaScript library facilitates popup and cross-window communication microsoftTeams.authentication.authenticate({ url: <auth URL>, width: <width>, height: <height>, successCallback: <successCallback>, failureCallback: <failureCallback>}) In <auth URL> signal result and pass data microsoftTeams.authentication.notifySuccess(token) microsoftTeams.authentication.notifyFailure(err) Redirecting across domains Tabs can only show pages in validDomains list of manifest Call microsoftTeams.navigateCrossDomain(yourNewUrl) to request the IFRAME containing your page is redirected to the specified URL. (Could also display page in popup via authenticate)
  • 89. Hands On Lab 04 – Exercise 3 Issuewith MSAL: npm install msal@0.1.1 --save
  • 90. Call to action Join Office 365 developer program https://dev.office.com/devprogram to leverage all resources for Office 365 development learning Build applications on Office 365 platform Attend MVP led local community events to continue learning on Office 365 development Share your feedback on Bootcamp at https://aka.ms/o365devbootcampfeedback

Hinweis der Redaktion

  1. Generated project: Review folders: src, manifest, package Review gulp tasks: manifest, build, serve Source files: *.html files: “inject” comments Used to inject TypeScript compiled output into page Net result is HTML/JavaScript in same page Every page needs “microsoftTeams.initialize()”, and is called in TypeScript object constructor webpack.config.js defines “output / library” around line 61. This library name is a namespace, used to qualify TypeScript objects
  2. Generated project: Review folders: src, manifest, package Review gulp tasks: manifest, build, serve Source files: *.html files: “inject” comments Used to inject TypeScript compiled output into page Net result is HTML/JavaScript in same page Every page needs “microsoftTeams.initialize()”, and is called in TypeScript object constructor webpack.config.js defines “output / library” around line 61. This library name is a namespace, used to qualify TypeScript objects
  3. Dialog example (https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/core-BasicMultiDialog): Root dialog calls Name dialog Name dialog prompts for name. Upon response, returns to caller passing name via Context.Done() method Root dialog calls Age dialog, passing name. (Pass via constructor on class) Age dialog prompts “Hello [name], what is your age?”. Upon response, returns to caller passing name via Context.Done() method User state applies to user for all conversations Conversation state applies to all users in that conversation Private state applies to current user in current conversation
  4. Teams will send notifications to your bot for changes or events that happen in contexts where your bot is active. You can use these events to trigger service logic, such as: Trigger welcome message when your bot is added to a team. Query and cache team information when the bot is added to a team. Updated cached information on team membership or channel information changes. Remove cached information for a team if the bot is removed. Since bot is scoped to team, no events for team creation/deletion provided. When bot is added/removed, TeamMember events are sent.
  5. Emulator download page: https://emulator.botframework.com/
  6. Generated project: Review folders: src, manifest, package Review gulp tasks: manifest, build, serve Source files: *.html files: “inject” comments Used to inject TypeScript compiled output into page Net result is HTML/JavaScript in same page Every page needs “microsoftTeams.initialize()”, and is called in TypeScript object constructor webpack.config.js defines “output / library” around line 61. This library name is a namespace, used to qualify TypeScript objects
  7. Design Focused functionality Tabs work best when they’re built to address a specific need. Focus on a small set of tasks or a subset of data that’s relevant to the channel the tab is in. Reduced chrome Avoid creating multiple panels in a tab, adding layers of navigation, or requiring users to scroll both vertically and horizontally in one tab. In other words, try not to have tabs in your tab. Integration Find ways to notify users about tab activity by posting cards to a conversation, for example. Conversational Find a way to facilitate conversation around a tab. This ensures that conversations center on the content, data, or process at hand. Streamlined access Make sure you’re granting access to the right people at the right time. Keeping your sign-in process simple will avoid creating barriers to contribution and collaboration. Develop Any editor Call any service Deploy Seller Dashboard is used to submit to store Not necessary for tabs – can sideload
  8. To provide a seamless tab experience, perform provisioning and authorization on configuration page when possible. If context has entity/subentity, then respond to a deeplink State storage is developer’s responsibility
  9. Generated project: Review folders: src, manifest, package Review gulp tasks: manifest, build, serve Source files: *.html files: “inject” comments Used to inject TypeScript compiled output into page Net result is HTML/JavaScript in same page Every page needs “microsoftTeams.initialize()”, and is called in TypeScript object constructor webpack.config.js defines “output / library” around line 61. This library name is a namespace, used to qualify TypeScript objects