I want to search an auto-generated topic-channel by API, but I don't know which API to use.
Related
I'm reading this getting started document:
https://github.com/google/google-api-javascript-client/blob/master/docs/start.md
In Option1, the following code is written:
gapi.client.people.people.get({
'resourceName': 'people/me',
'requestMask.includeField': 'person.names'
})
Why .people.people? I want to know the details of this syntax. If I use google drive API, do I write gapi.client.drive.drive.get?
To answer this question lets start with the Discovery services api
The Discovery API provides a list of Google APIs for retrieving a machine-readable "Discovery document" metadata for each API.
The reason we are looking at this is because the Google apis js client library which you are using gapi was generated using the discovery services api. apis-client-generator
Then lets look at the discovery dock for people api
If you check under resources you get
contactGroups
contactGroups.Members
otherContacts
people
people.conversations
Then each resource has a group of methods under and the people resource has a method called get.
So people.people.get is actually {API}.{resource}.{method}
This is just how google chose to build up the API.
Now the google drive api also has a group of resources
About
Changes
Channels
Comments
Files
Permissions
Replies
Revisons
Drives
There is a method called gapi.client.drive.drives.get Which is drive api, drives resource, get method which will return a drives resource.
If your actually after files then its probably more like gapi.client.drive.files.get Which is drive api, files resource, file get method which would return a file resource.
From the API Discovery Document:
For each method defined in the API Discovery Document, a corresponding method is constructed on the gapi.client object.
For example, The People API's methods are under gapi.client.people.
The People API has the methods people.get and people.connections.list.
[T]he generated methods can be called as follows:
gapi.client.people.people.get(...)
gapi.client.people.people.connections.list(...)
You can view API Methods on APIs Explorer.
So .people.people means:
Using the People API-equivalent method people, call the people.get(...) method.
To use the Drive API v3, you would query against gapi.client.drive with your method name. For example, gapi.client.drive.channels.stop(...).
An important note from this answer: you must load the Drive API before using it.
gapi.client.load('drive', 'v3', callback);
In the slack UI, when I make a search, it makes a request to the search.modules endpoint. There's also the option to exclude apps and bots from the result, which translates to a boolean POST param to that api endpoint.
https://api.slack.com/methods doesn't list such a method, and only has search.messages, search.files, and search.all.
How can I use the API to search, but exclude bot accounts? Do I need to leverage this seemingly hidden search.modules (which probably is inaccessible with a bot acct)? Is there a better way than making a list of bots and manually filtering them out of search results?
Well it's not in the documentation anywhere, but I can achieve this with the search.messages api by adding search_exclude_bots=True to my POST data.
Since this is undocumented, I'm curious as to whether users should be using this param and if it will be changed in a breaking way in the future.
I am looking through the Mailchimp API documentation but cannot seem to find an api call that will take a user_id and return the list of newsletter_ids to which they are subscribed.
Does anyone know of any method available for this purpose?
I am searching for documentation on the integration of QnA Maker API with LUIS in Azure BOT Framework. But after a lot of research, I couldn't find any such document.
If anyone came across the same scenario, please post your efforts.
I am using C# as scripting here.
There are several general ways to do it, but it's ultimately up to you as the Bot developer to decide how to structure it.
A general overview is provided in the docs here, but if you want a more code oriented sample, this blog post should help you -
Dialog management with QnA, Luis, and Scorables
In the sample, the LuisDialog acts as a kind of message controller, which guides the user to a certain kind of dialog based on intent. This also can be used to direct a user to a QnA dialog ->
[Serializable]
[LuisModel("YourLuisAppID", "YourLuisSubscriptionKey")]
public class LuisDialog : LuisDialog<object>
{
// methods to handle LUIS intents
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
// You can forward to QnA Dialog, and let Qna Maker handle the user's
query if no intent is found
await context.Forward(new QnaDialog(), ResumeAfterQnaDialog,
context.Activity, CancellationToken.None);
}
[LuisIntent("Some-Intent-Like-Get-Weather")]
public async Task GetWeather(IDialogContext context, LuisResult result)
{
....
// some tasks, forward to other dialog, etc
}
}
This is one way to do it, and a popular one. In this setup, if there is no intent that LUIS can detect, it'll route the user's query to a QnA dialog for the Qna Service (which you train) to answer.
Alternatively, you can create specifically a "Question intent" and try to forward it to QnA that way, if the user's intent was to ask a question. This is trickier however, as this method requires you to manually create custom code to manage the 'scores' of the responses.
Hope this was enough to help you get to what you need!
EDIT - Apologies, fixed the first link.
In addition, I'll just paste 3 common scenarios listed from the docs as ways you can use LUIS + QnA:
1) Call both QnA Maker and LUIS at the same time, and respond to the user by using information from the first one that returns a score of a specific threshold.
2) Call LUIS first, and if no intent meets a specific threshold score, i.e., "None" intent is triggered, then call QnA Maker. Alternatively, create a LUIS intent for QnA Maker, feeding your LUIS model with example QnA questions that map to "QnAIntent."
3)Call QnA Maker first, and if no answer meets a specific threshold score, then call LUIS.
I am using embedded Yammer feed to get the feeds from a particular group.
Using embedded Yammer I want to retrieve all topics of that particular group.
The API (embedded or REST) doesn't surface which topics are frequently used in a particular group. The closest thing in the API is Search, which allows you to search a group for topic names.