How to deploy a API.AI(Dialog flow) bot on my website? - actions-on-google

I have created a bot using API.AI. I have a webhook connected to it checking and validating something in DB written in Python running on ngrok in my local.
if I have to call my dialog flow bot on my website, I can do it using API call with giving Client Access token in Node js npm API.AI module. and UI can be generated using BOT UI framework.
Then, What is the use of Developer access token?
Currently I am running everthing on my local, but when i access my bot using api , webhook doesn't trigger. How can i solve that problem. How can i deploy the entire thing on say Heroku.
If possible can you please explain me API call and webhook call in respect to Dialogflow. Is it like i can't use both of them together(confusing).

With Dialogflow's web demo you can add some HTML and have the Dialogflow agent embedded in your website. It only works with text input/responses at the moment.
Here is an example:
<iframe style="float: right;" width="350" height="430"
src="https://console.dialogflow.com/api-client/demo/embedded/12f4b5a4-1c0b-4d04-81c0-39a028e2aff0">
</iframe>
Documentation is here: https://dialogflow.com/docs/integrations/web-demo

Related

Facebook Conversions API implementation with Google Tag Manager Server-Side

Hi, I have a question concerning the implementation of Facebook Conversions API via Google Tag Manager Server-Side.
We are using DNN /EVOQ CMS which is a .net application.
Everything else is in place concerning Facebook Pixel and Business manager.
I also tested it on the Graph API and it worked fine.
It’s just the last step that is missing.
I know one way to implement the Facebook Conversions API is with Node.js Business SDK.
https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api
My Question:
If you use Google Tag Manager Server-Side, do you still need to add the Node.js Business SDK ?
Thanks in advance
The Node sdk is to send FB conversions directly to FB.
In your case, you send all the FB conversion info with the hit to your GTM endpoint and then you make a custom http request tag and retranslate all the info you've got from your backend into a proper FB conversion request.
That's pretty much it.

Smartsheet app registration: whis URL to use for app and redirect?

What URL should be used for the App and for redirect for the Smartsheet new app registration form?
I'm attempting to build a small app so I can learn about the smartsheet API, but I'm stuck at step 1. Should I just use the smartsheet developer portal?
I was thinking about using Postman for this purpose, but I don't know how to use postman. I will be working with Python and just want to code a small tool to GET smartsheet data. So which rabbithole do I go down?
If you're just wanting to explore the Smartsheet API and test out some API operations by sending requests and viewing the responses, then using Postman would be the easiest route to do that. Using Postman only requires that you assemble the API requests properly (i.e., correct headers, URIs, parameters, request body) -- it doesn't require you to do any actual coding (e.g., Python). Looks like the Postman Learning Center contains some info that'll help you get started with Postman.
Regarding app registration within Smartsheet -- if you're just creating a sample app that you're going to use to explore simple API requests (and not a real app that you're ever going to actually deploy to production), I think you can use any URL for App URL and App Redirect URL (e.g., you could get by with just using https://www.google.com). However, keep in mind that building an app is a lot more work than just using Postman to explore the API -- if you're only wanting to explore the API for now, I'd recommend starting with Postman. Then once you're familiar with the API, you can use that knowledge to build an app that submits API requests and processes the responses.

How to integrate Facebook with Watson conversation

I can already connect my conversation to my Facebook page and the bot is working.
My Problem is that i couldn't find a single tutorial on how to make calls to a server that is owned by a company and has information about accounts and payments, for example when i type to the Chat-bot that i want to see a list of accounts, the chat-bot would reply with a list from that API; Or i can login to that server with my account by typing the account's name and password in the chat-bot. I just wanted to know if anyone knows how to do that or if its even possible or knows a tutorial that explains it. I also would prefer if the tutorial was detailed because i'm new to this field.
As #Felipe Paixao said, you need to develop an orchestrating application.
I've found one example that explains step-by-step how to use Watson Conversation with Facebook Messenger.
Requirements:
Facebook page
IBM Bluemix
A Facebook Developer Account
Source code.
Step - IBM Bluemix:
Create a SDK for Node.js application
Create a Watson Conversation service
Create your Workspace for Watson Conversation and build your Dialog
Configure the JS app and integrate it with the Watson Service Connections -> Connect Existent:
In your App created in IBM Bluemix, access the Tools and go to IDE Eclipse, and create a new file: app.js with this code.
Replace with your credentials the username and password
You can see your credentials inside Service Credentials, or going to your workspace and access:
Step - Facebook Developers:
Enter to facebook developers with your Facebook account
In the Dashboard select Create a New App and Select Messenger
Put the URL from your Bluemix (Now IBM Cloud) app and select the options marked: messages, message_deliveries, messaging_options e messaging_postbacks.
Now, return to our app to configure the app.js file with our new FB token autogenerated and deploy it.
Step Final
Test your chatbot: If you made everything OK, we will have your chatbot available on your Facebook page.
Obs.: For built your example, you can add the lines of code for call your API in the app.js using the http module, using the Advanced JSON in Watson Conversation and create one "action": "callApi", and recognize with your code for do something, like this example.
See the Official Reference that I used to build Facebook Messenger with Node.js SDK (Back-end) source code based on Priscila Parodi codes.
You need to develop an orchestrating application, that would be responsible to connect the IBM Watson Conversation with your desired Fronted, Facebook in this case, and the Backend systems. I imagine that you are using the automatic deploy to Facebook from the Conversation Tooling, this option would not resolve your need to access a Backend.
The image passed by #data_henrik shows exactly that.
In conversation, you can create context variables that will be used as triggers in the Orchestrator to let him know when you need to call a Backend service to provide an information and then write the response into the Conversation context.
About using the Chatbot to login into a system, passing a password, this isn't a safe option since all information typed would go to Watson Conversation log and any person with access to the tooling/api could see the passwords.

Facebook Developer- Messenger- add multiple webhooks for a single facebook page

I am trying to build a chatbot using Facebook developer platform. I want my bot to respond differently under different scenarios. So, basically I have my standard bot implementation on Heroku server. I want to bring in api.ai into my bot so as to leverage the kind of functionalities api.ai offers.
To bring in api.ai, I need to configure webhook in my Facebook app. As my Facebook app is already subscribed to Heroku, I don't see an option to add another webhook. Is there a way to subscribe my app on Facebook to multiple webhooks?
If not, is there any way to integrate api.ai using api calls from my heroku server?
Thanks in advance!
It's likely you'd probably just forward them along to the next endpoint. Have your server be the frontend, and forward requests from your server to the next webhook if needed.

Can apps be hosted on Facebook (like OpenSocial gadgets)?

I just started skimmed over the Facebook API and OpenSocial API. In OpenSocial there is the construct of a gadget that is hosted on the container. You just write the code inside some XML structure and upload somehow to the container. So the code ist hosted by the OpenSocial provider.
I couldn't find a pendent in the Facebook API. It seems that apps on Facebook must always be hosted on a developers system (and not on Facebook). Is that correct? Or did I miss something?
Yes, that's correct. Facebook is busy enough running its own stuff without your stuff keeping their servers busy!