I am creating a dialogflow to skype integration.With bot framework i am able to create the integration work.
I also referred the link below for the same.
Dialogflow bot integrated with Business Skype
Is there way to identify the skype user and send the details to dialogflow.
As of now this is a generic request. I wanted to greet the user from his skype userid or username. Is there a way to do it?
this will be under originalDetectIntentRequest.payload.user in your request payload from dialogFlow
"originalDetectIntentRequest": {
"source": "skype",
"payload": {
"user": {
"name": "Sana Zehra",
"id": "29:1I3o3Np8sTLU7YSuhHO-IDuc1SgqMwg-83YwGryAZceE"
},
"timestamp": "2019-01-02T09:59:59.12Z"
},
"source": "skype"
}
}
You are also getting user name here in order to greet him.
Related
We have created a Slack app that can respond to interactive messages (with blocks), i.e. a message with a clickable button. The app is configured correctly so when a user clicks the button a payload is sent to the request callback URL defined for our app.
The Slack JSON payload we receive contains a user object of the interacting user. However, the username field looks like an ID and is not the human readable display name.
Here is a redacted example of the payload sent by Slack to our request URL.
{
"type": "block_actions",
"user": {
"id": "U04xxxxxx",
"username": "00u6xxxxxxxx",
"name": "00u6xxxxxxxx",
"team_id": "T3xxxxx"
},
"api_app_id": "A021XXXXXX",
"token": "xxx",
"channel": {...},
"message": {...}
}
Both, the username and name fields are set to the same coded value and not the display name. Is there a setting in the Slack app for this? I don't have access to administer the Slack app settings.
I'm creating a bot to notify a user after an action has been done. Where i'm able to get my details using the below(screenshot) code.
Now in order to send a message to a user through a bot i would need his/her ID before hand to send a notification like in the above case i'm able to extract my info as i'm already logged in Teams. Unfortunately alphanumeric ID is very difficult to use and needs to be there before requesting and sending the notification.
Below is the JSON result if the ID is already known.
Response body
{
"id": "29:1GcS4EyB_oSI8A88XmWBN7NJFyMqe3QGnJdgLfFGkJnVelzRGos0bPbpsfJjcbAD22bmKc4GMbrY2g4JDrrA8vM06X1-cHHle4zOE6U4ttcc",
"objectId": "9d3e08f9-a7ae-43aa-a4d3-de3f319a8a9c",
"givenName": "Larry",
"surname": "Brown",
"email": "Larry.Brown#fabrikam.com",
"userPrincipalName": "labrown#fabrikam.com",
"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47",
"userRole":"user"
}
How i can get the unique ID of the user by using email id so that i can send a personal message to him/her using bot.
There is an option to fetch conversationChatId to send proactive message.
Before you fetch the conversation Id, you should check whether your bot is currently installed for a message recipient or not.
Note: Installation of app via Graph API triggers conversation update event for Bot.
Last week I've been looking at Bot framework Samples, honestly BotFx isn't my area of expertise.
I was playing with these samples from the sample library:
18.bot-authentication
24.bot-authentication-msgraph
46.teams-auth
The required steps for making work each of them are almost the same, for #18 and make it work in the emulator this include:
Register the BotApp in Azure AD
Generate a Secret
Add the Redirect URI (as documented it should be: https://token.botframework.com/.auth/web/redirect)
Create an azure bot service
Customize the OAuth Connection Settings
Then in the solution Modify appsettings.json (sample values below)
{
"ConnectionName": "juank",
"MicrosoftAppId": "cee1234562074c-1b3e-49b4-9e76-b727d73453454e018d",
"MicrosoftAppPassword": "uxPdfgwo.JAYmgrtU]w5I7KdgxLZSJ.a[qtgtrFxYZ02"
}
After that It's required to run the emulator and configure the
following settings
Up to this point the bot works as expected
Then I type any... and it just doesn't work. I receive this answer
from the bot :
And this data from the trace Operation returned an invalid status
code 'Unauthorized'
{
"channelId": "emulator",
"conversation": {
"id": "77631280-22e8-11ea-93e0-6dc9b0b41a7c|livechat"
},
"from": {
"id": "61bab030-214b-11ea-9cf4-193735472c4b",
"name": "Bot",
"role": "bot"
},
"id": "ae429e60-22e8-11ea-9786-a543cb22378b",
"label": "TurnError",
"localTimestamp": "2019-12-20T00:22:13-05:00",
"locale": "en-US",
"name": "OnTurnError Trace",
"recipient": {
"id": "f6982626-923e-4fd3-b930-eabf095e96df",
"role": "user"
},
"replyToId": "aacb51f0-22e8-11ea-9786-a543cb22378b",
"serviceUrl": "https://7eec83e4.ngrok.io",
"timestamp": "2019-12-20T05:22:13.958Z",
"type": "trace",
"value": "Operation returned an invalid status code 'Unauthorized'",
"valueType": "https://www.botframework.com/schemas/error"
}
And that's all.
I've successfully acquired the token from the OAuth setting Test tool in azure portal and also using Postman, but i haven't been able to make these Demos work properly once OAuthCard should be presented for login. Debugging hasn't been helpful since there isn't other information apart from JSON exposed above.
Any guidance or orientation about how to fix this will be appreciated.
There is no need to configure Azure Bot Service configurations in emulator. The Application Id and Application Password should be the same as those in appsettings.
And you should got these values from Azure portal under Configuration part.
Before doing this, please make sure the auth connection works.
Update:
You can change the Microsoft APPId here:
I am using the Actions on Google Signin helper to leverage Account Linking for Google Sign-in. The setup is using JSON and invoking it within the Actions on Google simulator or Google Assistant invokes the required helper. Is there a way to use the signin helper for the web client or is there a preferred way to do Account Linking for Google Sign-in for web client?
The JSON for siginin I am using is
{
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"fulfillmentText": "Hello There!",
"items": [
{
"simpleResponse": {
"textToSpeech": "Please sign in to access!"
}
}
],
"source": "askaibot.com"
},
"systemIntent": {
"data": {
"##type": "type.googleapis.com/google.actions.v2.SignInValueSpec"
},
"intent": "actions.intent.SIGN_IN"
}
}
}
}
I am wondering if there is any means to use Google Signin for the web client when using webhook and JSON setup. Thanks in advance!
UPDATE: Thanks Prisoner, for responding! Yes, I was referring to the webdemo available as a part of integrations or the assistant that runs on the web page noted for e.g. https://bot.dialogflow.com/60710e58-7590-423d-a533-79efcec0f2aa.
Thanks.
The "Web Demo" integration for Dialogflow isn't the Assistant. Although it lets you communicate with an agent built with Dialogflow, it doesn't have all the features that the Assistant does, and does not use the Actions on Google platform and features.
In particular, this means that it does not allow for Google Sign-In.
However...
You can use Google Sign-In for websites to have users log into a web page of yours. You can then use the Dialogflow Detect Intent API to build a chat client on your web page that will send user messages to a server that will send them to Dialogflow and include the user authentication with those messages. Your webhook will need to make sure it distinguishes between a message from the Assistant vs a message from your web page, get the auth info differently, and respond accordingly. All of this, however, is not as simple as what is offered through Actions on Google.
I am trying to implement a DocuSign API app to send documents to our clients for e-signature. In my application, I need to send one document to each client for e-signature. For example, an agreement doc where user will sign and agree to our terms and conditions.
So I will be sending the same document to each client and I assume I will be receiving a unique envelopeId for each individual request.
So how do you keep track of which envelopeId is associated with which user?
Can you send a custom tag in the request and receive it back in response to track it?
Most DocuSign users build a fully functional integration.
Integration such as Salesforce, CRM and other products that integrate DocuSign into their system track it either through an Envelope Custom Field (with their internal application record information) or they document the envelopeId responses and store them in their application.
Either way will work out just the same, it's all on how you want your integration to work.
Here is a quick sample call on how to create an envelope from a template with a text custom field
{
"emailSubject": "Just a test envelope",
"status": "sent",
"customFields": {
"textCustomFields": [
{
"name": "InternalToolNumber",
"required": true,
"show": false,
"value": 123456789
}
]
},
"templateId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"templateRoles": [
{
"email": "john.doe#emaildomain.com",
"name": "John Doe",
"roleName": "Signer 1"
}
]
}