Slack API to get applications installed in a workspace - slack

Is there a way to get a list of applications installed in a workspace on slack? The closest thing i would was web api Users.list which lists all users. From the users list i can get the BOT users and determine the applications. However, some apps install without creating a BOT user so those get left out in the Users.list approach.

Check out the API method team.integrationLogs. It provides you with a list of all integrations, including Slack apps.

Related

How to get the get API path and parameters of Google play developer API?

I have added a non-renewable subscription for one of my projects. We also started implementing the Google play developer API to get the subscription latest status from the Play Store. For that we have done the below steps as per this blog:
Linked the developer account to a new Google Cloud Project.
Enabled the Google Play Developer API for the Google Cloud Project.
Created a service account and created a key for the service account.
I have below clarifications related to this implementation:
I tried to Grant Access for the following permissions: But the corresponding checkmark is not clickable.
View financial data, orders, and cancellation survey responses
Manage orders and subscriptions
The 3rd step as per the blog is to Authorize an API key, but I didn't get a clear idea of that.
We are going to implement this API on the back end side as a corn job, do we need to generate a JWT token for accessing this API? Is this possible to call without a Token? I found 2 types of implementations from this blog, which one is easy and secure?
"Your application can complete these tasks either by using the Google APIs client library for your language or by directly interacting with the OAuth 2.0 system using HTTP."
From where we get the get API path and other details. I found a similar get API from AppStore like this. Is the play store providing a similar kind of get API?
We need the latest purchase status API and for that what parameters do we need to pass?

How to find out if workspace added or removed your Slack App?

I have some questions about Slack App after Public Distribution is activated.
Our team has developed a Slack App with bot and incoming webhook features, and we have activated public distribution for this Slack App, and added the "Add to Slack" button on our product webpage.
Questions:
Is there any way to find out what workspaces have added our Slack App? I understand that via the Add-to-Slack flow, we would know when a workspace has added the Slack App along with the resulting bot access token and webhook. But is that the only way to keep track? Is there no API to just list the workspaces, resulting bot, and webhook?
Is there any way to find out which workspaces have removed our Slack App? I can infer that information by doing an users.list API call using the bot access token. If it says token invalid, then I can guess that the workspace has removed the Slack App. Is there no other direct API to find out if a workspace has removed the Slack App?
Thank you.
Is there any way to find out what workspaces have added our Slack App?
I understand that via the Add-to-Slack flow, we would know when a
workspace has added the Slack App along with the resulting bot access
token and webhook. But is that the only way to keep track? Is there no
API to just list the workspaces, resulting bot, and webhook?
This is the only way (to track workspace during installation flow). At least for now, I saw such a feature in mid/long term plans for Slack API team.
Is there any way to find out which workspaces have removed our Slack
App? I can infer that information by doing an users.list API call
using the bot access token. If it says token invalid, then I can guess
that the workspace has removed the Slack App. Is there no other direct
API to find out if a workspace has removed the Slack App?
Take a look at app_uninstalled and tokens_revoked API events.

Slack File Library

I really like Slack but my organization won't allow it if we cannot disable file sharing features. I'm trying to find out whether I can either disable uploads of certain file types or hide the file library all together. Their support says there's no way to do this natively but is this possible with the API?
No, not to my knowledge. The main focus of the API is not to configure your Slack team, but to enable bots and 3rd party apps to communicate with your Slack team and retrieve information. All core configuration for your Slack team has to be done in admin settings and apparently you have already learned from Slack support team that you can not deactivate file sharing in admin settings.
But I think I might have a solution for you. You can create a Slack bot that automatically blocks sharing of files in channels. (technically the bot would auto delete any message that is a file share form a user). Users would still be able to upload files, but they wont be able to share them. At least not in any public and known private channel. However there is a caveat: As I understand the bot would not be able to block users from sharing files in direct messaging channels though.
We are using a similar bot to block messages from unauthorized users in some private channels, which works nicely. Our bot is a simple Slack app with a bot user and using the Events API to receive all messages from all channels he is invited too. The bot then checks each new message and deletes the ones that does not fulfill some criteria. In our case if the message comes from a user that is not on the whitelist.

How to create a slack bot with the events API

I have my own slack team, with its own slackbot user.
I want to create a basic slack bot that will respond to direct messages, and I since I need specific events, I need to use the Events API.
I understand that slack will POST to my server the event that happened with its parameters, but I don't understand what needs to be done with the oauth permissions.
How can I add permissions to the slack app, without submitting the app?
reading the docs, I couldn't find the answer to this..
what am I missing?
You do not need to submit your app to the Slack App Directory. That is optional and only necessary if you want to make your app available to the public.
But you need to install your app to your Slack team before you can use it. During the installation process your app will be authenticated to your Slack team and you will receive a special token based on the scopes you requested.
The authentication process follows the OAuth standard and works similar to the process used by other web services, e.g. Twitter or Facebook.
I use a mini website for each of my Slack apps that has the "Add to Slack" button and is able to run through the OAuth process with Slack. This website is basically another script in addition to the one that will handle the events coming form Slack.
Check out the excellent documentation from Slack on the Slack button and how to use Oauth with Slack.

Google Apps Marketplace Migration

We have a Google Apps Marketplace App. Or more precisely, we have 2: one in the old marketplace and one in the new. Both point to the same URL, both do exactly the same thing (OAuth2 authenticating the user(even users from the old Marketplace,, because we handle this users like the "normal" users coming from the Chrome Web Store ).
Now Google wants us to move the users from the old Marketplace app to the new one.
How do we do that?
According to Google's document we should call an UpgradeApp API for every domain.
This requires that we find out all the domains (we don't know them because we don't care, if the user is a marketplace user or not).
So we should probably use licenseNotification on the old Marketplace app, to find out all domains and migrate them one by one?
To try this, I tried to issue the API from API Explorer (https://developers.google.com/apps-marketplace/v2/reference/licenseNotification/list) but got a message (403 FORBIDDEN complaining that I should activate the API . How do I do this? (I already have a project where the Marketplace API and Marketplace SDK is enabled).
Will this approach work at all?
Are there simpler ways of doing this?
The API explorer approach works, I just tried.
Make sure you are providing correct applicationId which is the key here.
GET https://www.googleapis.com/appsmarket/v2/licenseNotification/applicationId

Resources