How can I programatically add a user to a team? - microsoft-teams

We have a public channel which we would like to link to from an external site. Unfortunately the link which teams gives will not add you to the team. How do I add the user to the team so that the link will kick them into that team's channel?

Right now there is no way to add a user except through the team owner's add user interface. We are working on Office Graph APIs that would support this, but no ETA on that yet.

You can use the MS Graph APIs for adding users to the underlying group. It may take up to an hour for it to be reflected in Teams. We are working on enhancing the Graph APIs to eliminate this latency completely.

Related

Proactively Install / Push Apps in Teams for Multiple Users

I have a query regarding, How to Proactively Install / Push Apps in Teams for Multiple Users ?.
We have added our Bot Application as part of Teams App Catalogue, and I followed below document regarding Manage App Setup Policies in Microsoft Teams to install apps:
https://learn.microsoft.com/en-US/microsoftteams/teams-app-setup-policies?WT.mc_id=TeamsAdminCenterCSH#install-apps
Though above link clearly states that it automatically installs apps for users, but when we follow above link it only adds application as part of Teams App Catalogue.
So just wanted to know that does installation here mean, only adding in App List and not installing as such on user machine ?.
The other method we can follow is to create a custom script and use Graph API queries as described in below link:
https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/proactive-bots-and-messages/graph-proactive-bots-and-messages#proactive-app-installation-in-teams
So wanted to know as per Microsoft, what is the recommended way of Pushing Bot App to multiple users on MS Teams. Can this be handled with Teams Admin Center ?.
Any help or guidance on the approach to achieve proactive app installation in Teams would be great.
Thanks In Advance!!!..
Both of these approaches should work fine. App Setup Policies is the easiest though as you don't need to write any code, but be aware that it can take a while for the policy to apply (I think up to a day or even two). There's a way to force it to update, I think if the user signs out of Teams entirely and signs back in.
I tried with Teams Admin Center and tested 2 scenarios:
1.) For User Already Logged In
2.) For New User Logging the First Time
The policies take time to be applied / be effective for users (not immediate). In my testing, I logged in after ~2 hours for New User and waited ~2 days for already logged in User. We have to test the same for your respective environment. Also these are not Standard Timelines, and we have Test in our environment accordingly.

Outlook - MS Graph API - how to check Room Sharing options?

I am building a REST integration using MS Graph 1.0.
I am basically creating Room bookings using the createEvent API and this works just fine.
Now as I understand, some Rooms can be private, meaning only shared with specific Users or Groups. How can I check that using MS Graph? Is there a dedicated API for this? O rmaybe at least you can point me to the relevant object/property I should be looking into?
I want to check if the user triggering the integration is one of the users/groups allowed to book that Room and only then create the invite for that room.
Thanks!
Have you tried looking in to places API room resource type, it has bookingType property which says whether the room is standard/reserved. https://learn.microsoft.com/en-us/graph/api/resources/room?view=graph-rest-beta#bookingtype-values.

Bot Framework - add member to Teams group chat

I have a group chat on Microsoft Teams with 4 members: 3 people and a bot. Is it possible for the bot to add a new member to the existing group chat?
I found the method deleteConversationMember of the class BotFrameworkAdapter, which should remove an existing member. Well, I would need the opposite, adding a new member.
I have also checked Microsoft Teams Graph API, but it seems to be possible only to get members and not add a new one.
As I see from your comment, you're trying to have the bot escalate, or "hand off" to a service desk agent. If that's correct, you can have a look at another model for this altogether, where the user continues to chat with the bot, but the messages are being sent, by the bot, to an agent behind the scenes. This is referred to as a "handoff", and you can see a blog post here and source code (from the blog author) here on github
The BotFrameworkAdapter methods use the Bot Framework REST API, which itself calls channel-specific API's. As you've seen in the Teams Graph API, adding a member to a group chat is not currently supported and even if it was that Graph API is in preview and not suited for production applications. This document explains how to give feedback if you want to request this feature.
As a workaround, I recommend having the bot give the existing group members some instruction on adding the new member to the group themselves.
If you'd like to go with a bot-to-human handoff solution like Hilton suggested, you might be interested in this new sample: https://github.com/arturl/lpproxybot

Deploy 1:1 Teams bot to all users at once

I would like to deploy my 1:1 Teams bot to all users in an O365 tenant as a company admin. How do I do that? I know how to get a Manifest in the Org's app store but it seems I can only deploy it for myself. For obvious reasons I can't expect my 2.000+ users to do that.
I know there is a previous question about this (Microsoft Teams: How to provide a 1:1 chat bot globally?) but it seems outdated and I don't see a real solution here
I can think of a fairly simple way to do it assuming some programming, of course.
Use the MSFT Graph API to add the contact to the user's contact List, then it'll show on the 1:1 chat tab.
https://learn.microsoft.com/en-us/graph/api/user-post-contacts?view=graph-rest-1.0&tabs=cs
Since it is a user's contact it also allows to set a picture and a custom name.
EDIT:
I then realised this would not list in the 1:1 chat tab because it wouldn't appear there until there is an interaction. Also not sure how the contact should be populated...
My suggestion would that from the bot itself you sent a welcome message to every user, this will make sure that everyone has in in 1:1.
Assuming you want to deploy your bot only to your company not globally. ? if that is the case, once you have your bot ready with manifest.json file. Then you have to follow the
Publish apps to the Microsoft Teams Tenant Apps Catalog
https://learn.microsoft.com/en-us/microsoftteams/tenant-apps-catalog-teams
Alternatively this is a bit of cheeky way.
Assuming if all your 2000+ users in one Company Teams / Channel. As an Admin you can install your bot in to that channel. Then every one can access the bot using # mentions of your Bot.
Hope it helps.

Slack API : Ability to view all recently added users to Slack Channel

I am working on a POC to proof out the ability to get a list of all the new users who have been added to a specific Slack Channel. From my initial review of the Slack API I am not seeing anything that showcases this ability, I was curious to see if anyone had worked on something similar or could point me to resources that would be a viable solution.
I believe there is no ready-made API method available, that will give you that specific information. However, Slack is very flexible and you can use the existing building blocks to easily add additional features as needed.
E.g. To get the requested information you can develop a small Slack app that listens to the member_joined_channel and member_left_channel events to keep track of when members joined a channel.
If you need a historical record of membership in a channel, you could use the Slack API's groups.history method, page through results, and build a membership log by looking for events of type member_joined_channel and member_left_channel through time.

Resources