Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My slides from SharePoint Saturday Warsaw 2019


Published on

My session on Microsoft Teams development

Published in: Technology
  • Are You Heartbroken? Don't be upset, let Justin help you get your Ex back. ➤➤
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

My slides from SharePoint Saturday Warsaw 2019

  1. 1. 06.04.2019 # 2019 # MS Teams from a developer’s perspective Rick Van Rousselt
  2. 2. 06.04.2019 # Sponsors and Partners
  3. 3. 06.04.2019 # 06.04.2019 # Getting started with Teams development How to setup your development environment
  4. 4. Setup your development environment
  5. 5. Lets dive in
  6. 6. Manifest
  7. 7. Manifest Describes functionality of your Teams app Part of the definition you upload
  8. 8. Manifest • Describes how the app integrates with Teams • Name • Description • Icons • Permissions • Valid Domains Tabs Static Tabs Bots Connectors Compose Extensions
  9. 9. Website to host your code The actual functionality of your app
  10. 10. App Studio • Simplifies the process of creating Teams apps
  11. 11. ngrok
  12. 12. Teams
  13. 13. Tabs
  14. 14. Tab scopes Teams Personal Group
  15. 15. 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
  16. 16. Personal tabs 1:1 conversation or chats Static tabs: content that is relevant to individual users
  17. 17. Demo
  18. 18. Bots
  19. 19. Bot scopes Teams Personal Group: dev preview
  20. 20. Appears like any other team member except a hexagonal avatar icon and is always online
  21. 21. Team bot visible in channel requires the user to @mention the bot
  22. 22. Personal bots User can just start typing
  23. 23. Connectors
  24. 24. Connectors Post activity to a channel • Text • Card • Actionable messages Incoming webhook Posting a JSON to an HTTP endpoint
  25. 25. 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:
  26. 26. Demo
  27. 27. Message extensions Compose extensions
  28. 28. Message extensions • Integrate your app directly in a chat • Get information from your app and post that information • Uses the bot framework
  29. 29. • 5 seconds to respond • Default query possible (initialrun = true) • Recently viewed items • Favorites • Every request has information about the user
  30. 30. First there was search
  31. 31. Now Actions • Static • Teams will render a form for you • Dynamic • You can do whatever you want
  32. 32. Demo
  33. 33. Activity Feed integrations
  34. 34. 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
  35. 35. Demo
  36. 36. Outgoing webhooks Custom bots
  37. 37. Outgoing Webhooks (custom bots) • Easy way to extend teams without the need of building a full bot • Listens to @mentions • First authenticate the caller
  38. 38. 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.
  39. 39. Calling
  40. 40. Call types
  41. 41. 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,…
  42. 42. 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
  43. 43. 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
  44. 44. Demo
  45. 45. Authentication
  46. 46. Tips
  47. 47. Create an afterbuild task
  48. 48. Rick Van Rousselt CTO Advantive Belgium Office Apps and Services MVP BIWUG Board Member Email : rickvanrousselt