We need more detailed documentation of BotComposer "match memory scopes" - botframework

Please, we are developing with new BotComposer and we know there are several memory scopes var that we can use:
[user], for example: "user.surname" is valid if we created previously this var in scope "user"
We know too "turn.recognized.intent" for the last recognized intent...
We know too "dialog.result" if we save a result of a dialog into result...
But what about the others? The predefined or existing values?
· What type of information and how we can obtain all the settings with settings?
· What type of information and how we can obtain all the dialog vars with dialog?
The same for class and this...
We are searching how to obtain current conversationId for example...

The docs for memory can be found in the Composer docs and BotBuilder docs.
The BotBuilder docs will probably be most helpful to you. Let me know if those docs answer your questions and feel free to open issues if something is missing or confusing.

Related

How to read a Google People api response object [updated]

I'm new to Google's API and I'm having trouble reading the content of a People contact.
To get the details of a particular contact, references show this code should work [Edit: I updated the personfields]:
profile = service.people().get(resourceName='people/c63810788897573286', personFields='names')
The resourceName is the ID of a particular contact (that ID will only work for someone with access to my account). The server grabs it correctly and returns this:
<googleapiclient.discovery.Resource object at 0x10fd183c8>
How do I read the content of this object? I can't figure out from the documentation
I want to print out the Name. I'm pretty new to APIs, so maybe there is a standard way to read an HTTP object or maybe it's something unique to Google's API. Thanks for any advice
I found an answer in another somewhat related StackOverflow. I needed to the add .execute() to the call
profile = service.people().get(resourceName='people/c63810788897573286', personFields='names').execute()

Why is there no access to all document resources?

I would like to understand why I can not continue my work with Carrot2. A message appears saying "Our apologies, the following processing error has occurred:
org.carrot2.source.etools.IpBannedException: org.apache.http.client.HttpResponseException: Forbidden"
There is a problem with eTools, Wiki, PUT document sources (31/07/19) into Online version. I try to work with the downloaded version of the programme, but no document source does not work. Could you solve this problem and how long it will take?
Thank you!
Please see here:
http://project.carrot2.org/faq.html#ipbanned
We provide the search interface as a demo of the technology and we use a partnership with a company called Comcepta (eTools) for providing a limited number of free search requests. Unfortunately, some people have been abusing this free service and we had to introduce per-IP limitations.
If you wish to extend your query limits please install Carrot2 locally and contact Comcepta for custom query limit arrangements.
Apologies for the inconvenience.

A way to open up Slack Search UI (in a browser) from a URL

I was trying to see if there was a way to open up the new Slack Search UI, in a browser, from a URL.
For example, in Microsoft Teams, you can open up the following link https://teams.microsoft.com/_#/apps/a2da8768-95d5-419e-9441-3b539865b118/search?q=yourQueryHere in a new tab, and it would open up your Teams and open up the search UI with yourQueryHere results already listed.
Is there something similar for Slack? So far I do not believe it is possible because Slack does not have routes for search pages.
Let's say we are here: https://company.slack.com/messages/channelId/.
We then type something in the search bar and press search. The URL stays constant.
Note that Slack seems (?) to have deeplinking for search (slack://) according to their docs, but there are no examples (I tried slack://search/hello, slack://search).
I had the same question for Slack support earlier - it looks like they removed Slack deep search linking via the slack://search URL after they released their new search functionality:
I am sorry to report that we currently do not support search deep linking at the moment. We previously did but it needed to be removed while our improved search was being worked on and released.
The docs you linked to used to have a better description further up the page about how to use this deep link and the required syntax. It looks like the example workflows section you link to is a remnant of that.
I am really sorry that the docs mislead you. I will contact the API docs team and ask them to remove those references. Hopefully in the future we can reinstate this ability once again.
It seems that the last parameter from the search URL -https://app.slack.com/client/.../search/search-eyJ... - is Base64 encoding over a JSON string:
{
"d": "search query goes here",
"q": "... (not sure what this is used for, can be disregarded)",
"r": "search query goes here"
}
So I'm using this method and it works fine:
# search.py
import sys
import base64
import os
import json
from urllib.parse import quote
query = sys.argv[1]
search_data = json.dumps({
"d": quote(query),
"r": quote(query)
})
qhash = base64.b64encode(search_data.encode()).decode()
url = f'https://app.slack.com/client/.../search/search-{qhash}'
os.system(f'open "" {url}')
And then:
./search.py "my search query"
I'm afraid to say that there's no way at the moment to do what you describe, but it's a pretty cool idea! I'm not sure how we could cleanly manage such a change in light of our recent adjustments to the search UI (it's not in the side pane anymore!), but I'll pass your desire for such a thing along to the rest of the team here.
Thanks for writing in about this! Please let me know if you happen to think of anything similar you'd like to see changed or added to the app, and I'll be happy to make sure the right folks hear about it.
I've sent a message to the Slack team, and they've responded extremely fast. Unfortunately, there is no way at the moment.

New type for the deprecated grocery_or_supermarket type in google-places-API

Looks like google has deprecated a bunch of place types from their places API:
https://developers.google.com/places/web-service/supported_types
"The following types are deprecated, and will continue to be supported until February 16, 2017: establishment, finance, food, general_contractor, grocery_or_supermarket, health, place_of_worship."
I wasn't able to figure out what the new replacement types would be. "food" and "store" are too generic for a grocery related store.
Additionally, the documentation states that these types are deprecated only for the query API. The place-details results "may" still contain them.
A workaround I can implement is to fetch the places using a more generic type (e.g., store), and then filter on my end.. not ideal, but out of ideas. However, this also means that I'll rely on the more granular type (e.g., grocery_or_supermarket) to be mentioned in the response.
Can someone pls comment or share ideas on this issue? (did any of you have to deal with this? would be great if you can share your thoughts)
Thanks
Use Foursquare API for this data instead of Google, just get a Foursquare API key, check the API how to use details online and that should provide the data your need.

Resume in articulate with tin-can api

I am trying to implement this endpoint activities/state/?method=GET in my LRS - but I can not seem to get the resume functionality working. I have all the data, but not sure what does Articulate expect the LRS to return in order to resume where the user left off. I also tried looking at Articulate support page, but nothing useful so far. Any help would be appreciated.
It's looking for the state string to be returned. Which is just a long string that is sent out when the state ( bookmark ) is saved.
I recommend testing with the Golf Prototype at http://tincanapi.com/prototypes/ first so that you know the issue is with the LRS. Try the prototypes in both Internet Explorer and another browser such as Chrome; any difference in behaviour could be a clue.
Please also look at your network tab in Chrome's developer tools and let us know if any requests are failing and what is being stored and retrieved from the State.
Full details of how the State API is supposed to work are found in the spec. Here's the relevant section in version 1.0.2: https://github.com/adlnet/xAPI-Spec/blob/a752217060b83a2e15dfab69f8c257cd86a888e6/xAPI.md#stateapi
It's also worth noting that building an LRS is hard. There are a number of commercial and open source LRS that will likely be cheaper than building one yourself.
I managed to get this working. I was using .NET Web API.
I had to explicitly set the content-type header to octet-stream - It was defaulting to text/html.
The following code did the trick:
HttpResponseMessage httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK);
httpResponseMessage.Content = new StringContent(studentModuleName.SuspendData);
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

Resources