Skip to content

Instantly share code, notes, and snippets.

@keyuls
Last active September 21, 2017 21:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save keyuls/d944455507a1c6d09789abf9633908bc to your computer and use it in GitHub Desktop.
Save keyuls/d944455507a1c6d09789abf9633908bc to your computer and use it in GitHub Desktop.
connecting to api.ai
from flask import Flask, request
from flask import make_response
import requests
import os
import json
app = Flask(__name__)
@app.route('/connect')
def cf_connect():
query = request.args.get('query')
api_url = 'https://api.api.ai/v1/query?v=20150910&query='
head = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}
s = requests.Session()
result = s.get(api_url + query + '&lang=en'+ '&sessionId=1234567890', headers=head)
result = result.json()
result = result.get('result')
fulfil = result.get('fulfillment')
data= fulfil.get('data')
if data is None:
speech= fulfil.get('speech')
fb={"text": speech}
else:
fb = data.get('facebook')
element=[]
element.append(fb)
res = json.dumps(element, indent=4)
r = make_response(res)
#r.headers['Content-Type'] = 'application/json'
return r
if __name__ == '__main__':
port = int(os.getenv('PORT', 5000))
app.run(debug=False, port=port, host='0.0.0.0')
@niklbert
Copy link

My version of this wasn't working anymore. Apparently API.AI changed the sessionID parameter in JSON fields to "required". I added a 10 digit session id token (line 15) to my fork and it works again now.

@keyuls
Copy link
Author

keyuls commented Sep 21, 2017

Thank you for pointing out this. I updated code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment