Slack displays the expiration date for guests in the profile view (if set). But which API is used for that?
I only found an API to change the value https://api.slack.com/methods/admin.users.setExpiration
Can you try using SCIM APIs to fetch the required result.
You'll fin dthe documentation here:
https://api.slack.com/scim#scim-api-endpoints__schemas
Even it is undocumented, https://api.slack.com/methods/users.info provides guest_expiration_ts as part of the profile element (I tried it with a bot token on a restricted user (multichannel guest))
Related
Is it possible to change user settings in google calendar via API? What I found on their developer web documentation suggests that no, but maybe there is something I missed.
Thanks for any answers
The Google calendar api gives you access to a users google calendars. It does not give you access to change any settings for the user on the Google calendar web application thats two different things.
You can update the calendar itself changing calendar update some of the basic information about a calendar.
Unfortunately what you want cannot be achieved.
As you clearly noticed in the Calendar API documentation, the operations accepted for Calendar settings are: get, list and watch.
What you can do instead is to file a feature on request on Google Issue Tracker here.
I want to fetch my GMB data daily with a cronjob.
The GMB API documentation only explains how to get the Access Token with the standard Oauth setup. It doesn't work for applications like this, without any frontend, because the Consent Screen.
It's possible to skip the Consent Screen using Service Accounts, but not all the Google APIs support this method.
There are a lot of posts talking about the same problem.
Questions:
Do the GMB API supports Oauth via Service Accounts in 2020?
If the answer is yes, is there any official documentation? (I've spend a lot of time on research with no results).
If the answer is not, is it possible to generate Access Token with no expirations? Or a long time duration token at least...
I'm creating a MS Teams bot which periodically checks the users' Outlook calendar by background threads spawned after the user logs in via OAuthPrompt.
To implement the feature, it seems that I have to configure an OAuth connection setting and an app registration supporting offline_access. Then, get a refresh token when getting an access token, according to Get access on behalf of a user.
But as long as I tried the example bot, the result of OAuthPrompt doesn't contain a refresh token. And I couldn't find the documented way to get it.
How can I achieve the goal? Do I need some hack on OAuthPrompt or some related classes? Do I have to build cards from scratch?
I concluded that we can't get refresh_token with OAuthPrompt from investigation. So I made up with a different way to achieve the goal.
The key idea is creating a tiny web app just for the "Sign in with Microsoft account" feature, which can easily get refresh_token as ordinary web apps.
Here is the example app: https://github.com/igrep/example-teams-bot-with-ms-account-refresh-token
The sample which you are using is for most of the channels, but Teams behaves differently. An Invoke Activity is sent to the bot rather than the Event Activity used by other channels. This Invoke Activity must be forwarded to the dialog if the OAuthPrompt is being used.
Refer to this documentation for adding authentication to your MS Teams bot, which makes use of Teams-auth sample.
For a better understanding of how OAuth works in MS Teams, you can refer to this documentation which explains the authentication flow.
Hope this helps!!
alwaysPrompt flag should be false. Then OAuth prompt will get refresh tokens silently without prompting login card.
Please refer the answer on github about this isse.
Bot composer OAuth refresh token
Another idea has flashed into my mind while writing this comment: running a dialog including OAuthPrompt in a TurnContext made with a ConversationRefrence, which is saved and passed to the background thread, may work. (But I have no time and no motive to try!)
In my case, I needed the refresh_token to get access tokens for other Microsoft resources like Exchange,
the solution was to use
const tokenResponses = await context.adapter.getAadTokens(context, this.connectionName, [
"https://outlook.office365.com",
"https://graph.microsoft.com",
]);
I am currently building a NodeJS backend app that is querying the Google Calendar API. I have setup a new project on Google Cloud API platform and have generated all the required credentials. As stated by the google calendar API page, the allowed queries per day is 1,000,000. Since I am only querying for testing purposes at the moment, I am sure that I haven't even hit a 100. Yet whenever I try to query the API it returns the error:
"The API returned an error: Error: Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
Also I have noticed that the dev console has generated a API key for me. Where am I supposed to put that?
My initial thinking is that Google API requires me to perform an additional signup using some CLI tools or something along those lines to signup. If not, where am I supposed to sign up?
Thanks in advance.
Note: I already have all the information from the cloud platform such as client_id, client_secret, project_id.
In "Error: Daily Limit for Unauthenticated Use Exceeded", they key word is Unauthenticated. Your request to the Calendar API is missing an OAuth Access Token. You will need to research Google OAuth.
This question has been answered many times. Please learn how to search SO for similar questions whenever you post a new question. https://stackoverflow.com/search?q=google+oauth+%22daily+limit+for+unauthenticated%22
To anyone who comes across this post in the future. I fixed the issue by using the project generated by Google Calendar API site (https://developers.google.com/calendar/quickstart/nodejs) by clicked the big blue "Enable the google calendar api" and then changing the name of the quickstart project that was generated. I don't know why it works now but it does and it's been working quite stably so far. Lets see how to goes.
When a user was deactivated (after using undocumented API method users.admin.setInactive), is there any possibilities to re-activate him using slackAPI? Unfortunatelly i didn't find any method for this...
The only way I've found is by using Slack SIM API. See PATCH /Users/{id} on:
https://api.slack.com/scim
Worth mentioning this is only available to Slack workspaces on the Plus plan and Slack Enterprise Grid.
Hope that helps!
After long searching it is possible to get users reactivated with the free api. You can not do it with a legacy key and api key. But you can with an session api key
see https://github.com/SvenHamers/slack-sessiontoken for an example how to automate it (Golang)
Api: users.admin.setRegular