Testing instructions for updating addon - office-store

I want to update my addon (cannot reveal the name here). I uploaded a new package and published it. In the certification phase it was invalidated with reasons:
1. Not enough test instructions provided.
My question: How am I supposed to add instructions? Is it the optional textbox that we get when clicking 'publish' button?

When you select 'review and publish' from the top right in your partner center account, the 'notes for certification' field will be available before you resubmit the offer.

Related

Google Workspace Addon: Unable to retrigger the onEventOpenTrigger Event

I currently have a onEventOpenTrigger that returns a card with informations from the server as well as information from the event itself.
The problem I am facing is that I can edit the server info as well as info from the event. So I want to render the Card with the updated info every time I reopen the event.
Now I am able to rerender the card by using a different trigger eventUpdateTrigger that helps me re render the card in case theres a change in members or a change in conference solutions. But I can't seem to retrigger it when I change the time.
Does anyone has any better idea than a refresh button to achieve this. Thanks in advance.
Times of the event (start and end) are not supported by Calendar event triggers.
According to the documentation, eventUpdateTrigger will only be triggered if:
- Adds one or more attendees.
- Removes one or more attendees.
- Adds or switches to a different conferencing solution.
There is a feature request on Google's Issue Tracker asking for the date/time fields to be supported. You can click on +1 to give more priority to it and to receive updates.
In the current situation, the refresh button seems to be the best option for your case.

How to start the Einstein Bot on specific keyword?

I created an Einstein Bot on Production for WhatsApp Chat, I want it to only start only on specific keywords/messages, for example, ="test"
So that the bot doesn't reply to customers, as it is not completely ready. Please help, if you can.
I didn't find any solution, because according to me, there isn't any variable which can store the first "hi/hello" message from the customer
I resolved it.
In Welcome Dialog Box, I created a dialog Box and typed a generic message. After that, I saved the response in a variable and in Rules I checked whether the variable value is equal to the specific keyword or not.
If yes, call the dialog to another dialog box. Check the attached image for reference.

In Ews push notification mode, I am getting unwanted unsaved Appointment. How to get rid of them?

I am using Exchange Web Services' push notification mode. I noticed that when I "New an appointment" in Exchange, if I click "attachment" button, it jumps to Attachement page, and push a "Item" notification into the SOAP servlet right away, without me "Save" the appointment. I guess this is probably how it works. But then I need to identify this "Item" as unfinished in my code, such that I can ignore it until I received another notification when the appointment is actually saved. So far, I've tried a number of properties such as isDraft, isDirty, getAppointmentState and etc to identify this "unsaved" appointment, but none of them worked.
So my questions are:
Can I config the exchange server such that it stops pushing notification for "unsaved" appointment?
Failing to do (1), how can I identify the "unsaved" appointment? Which property to check?
Thanks in advance,
Ling
Notifications are basically just telling you that an Item has been created on the server and based on way the UI action is taking place the client is creating an item to cater for the UI interaction so you will get a notification regardless. There is no such concept as a draft appointment and then next notification you get for that appointment should be an update. Multiple notification for an appointment is something that your code you should expect and deal with if you synchronization process is going to work reliably.
One thing you can try is to look at the item that is being created with a MAPI editor like OutlookSpy or MFCMapi as that will tell you if there is a specific extended property that you maybe able to use.

What is the simplest way to find a slack team ID and a channel ID?

We are trying to setup deep linking into slack, as described here:
https://api.slack.com/docs/deep-linking
The document states that to open a specific team, the following URL should be used:
slack://open?team={TEAM_ID}
Open Slack and switch teams to the specified team. The provided
TEAM_ID should be a string, like T12345.
Furthermore, to open a channel in a team, the following URL should be used:
slack://channel?team={TEAM_ID}&id={CHANNEL_ID}
Open the channel specified by the CHANNEL_ID provided in the id field,
like C024BE91L. You must also specify the team with a TEAM_ID.
My question is simple. Where can I find out what TEAM_ID I need and what CHANNEL_ID I need?
Here is the easiest way to manually find the slack IDs
1. Any channel ID
Open the slack webpage (http://yourteam.slack.com) and then simply open the channel. The channel ID is displayed in the browser URL:
2. Any user ID
To find a user ID you need to open your browser dev-tools console and inspect the user-link in the sidebar. The user ID can be found in the HTML attribute "data-member-id":
Or in slack: (1) Click on the users name and choose (2) "Show Profile". Then open the "..." menu and you see the option (3) "Copy Member-ID ..." - to get your own user ID via the UI, you have to click the Team-Logo in top-left corner and then choose "Profile & Account" (this is not included in the screenshot)
3. Team ID
Simply open the dev-tools of your browser, switch to the "Console" tab and enter the text boot_data.team_id into the console. This will display your team ID:
As of July 2019, it seems like the team id and the channel id is already being shown via the web.
As you can see in the screenshot, the 2nd to the last node is the team id (prefixed with "T") and the last node is the channel id (prefixed with "C"). All you have to do is open slack via the web, go to the specific channel, and you can see the url change to something close to the screenshot above.
Slightly different answer to the existing ones.
Whenever I wanted to just find out quickly what the relevant ids are for a specific team, I just opened the Slack web client and inspected the relevant elements. (Using Chrome Dev Tools)
https://my.slack.com/messages
The <a> tag that links to a user tends to include a data-member-id attribute, the content of which is the user id.
The same holds true for channels. If you inspect any of the channels in the sidebar, you can see they are ordered as <li> list elements each containing the channel id in the class name.
For the team id, you can open the entire source of the slack web client and CTRL-F for your team_domain (e.g. myslack55 for myslack55.slack.com) and that should find you the team id.
Basically, it's all hidden in plain sight. You just need to know where to look ;)
The answer marked correct here does not work for me, but I may have found an even easier way with test tokens.
Create a test token: https://api.slack.com/docs/oauth-test-tokens
Scroll down to the "try it now!" button. You land on auth.test: https://api.slack.com/methods/auth.test/test
Choose the team you want to test and click Test Method. You can find your team_id (and user_id) there.
Do the same for channels.list. You can click "View Another Method" and search or go to: https://api.slack.com/methods/channels.list/test
Choose the team again and Test Method. Cmd+F through the channels object looking for whatever channel_ids you need.
The easiest way to get the team and channel id and is to add slack developer tool app to your slack, you can can it here.
After adding it all you simply need to do is go to any channel and choose this command
/sdt whoami
It will output a snippet like this one.
There are much more commands and other things you can perform with this slack app, I would highly recommend it if you're building any integrations for slack.
As of 2017, it looks like slack made it easier to find.
Here is the easiest way to manually find the Team IDs.
Visit your slack room via a web browser.
Right Click > "View Source"
And search for Team_id:
If you are using the Slack app you can simply right click on the channel name in the left menu and click Copy link, paste it somewhere and you will see the channel id.
You can also simply right-click on the slack channel (or direct message) in the desktop App and select the 'Copy Link' option.
This will give you a URL of the form: https://org.slack.com/messages/[channel-ID]
I attest this works on High Sierra Mac OSX - Slack 3.1.1
Team ID
The easiest way to get your team ID is to use the Slack API method auth.test with your access token.
Channel ID
Depends on if you want a public or private channel you can call the respective Slack API method to get a list of all channels incl. their IDs.
Public channel: channels.list
Private channel: groups.list
Note that you can only see private channels in which the user/bot that belongs to your access token has been invited into.
Accesss Token
To get the access token you can either request a "test token" on the Slack API page under "Test Token" (only recommended for testing purposes by Slack). Or you can create a Slack app and install that app for your Slack team using Oath which will also generate an app specific access token.
If you've come here looking for how to access these values via the API for a specific user (like me!) using the #slack/bolt package - here's an example of how to do it.
Team ID & Channel ID & User ID
app.message('hello'),
async ({ say, body, context, message }) => {
const teamResponse: any = await app.client.team.info({
token: context.botToken,
user: message.id,
});
// An object containing the team data that Slack has stored
const team: SlackGeneratedTeam = teamResponse.team;
// User ID
console.log(message.id)
// Team ID
console.log(team.id)
// channel ID
console.log(message.channel)
})

Box enterprise events missing event for share link permission change

We are interested in getting the enterprise events from Box API which are documented here. I see that there are enterprise events for items being shared and unshared. These are SHARE and UNSHARE. However there are no events when permission(access level) are changed for shared links. So e.g if someone changes the access level from OPEN to YOUR_COMPANY or vice-versa, the Box API does not send any event..Our use-case is such that we would like to known when the access level changed. How can this be achieved?
Do we need to submit a feature request to Box? If so, what is the process? Also, what can be the timelines for any new revisions in which this feature can be added?
Good catch. Consider you feature request submitted.