title: Take Dialogflow intent and query Firestore
body: <p>My chatbot has been created in Dialogflow and I am now trying to access it from Python, to take user inputs and display outputs in the GUI (think a basic chatbot gui).</p>
  
  <p>I have connected my Python environment to Dialogflow and to firestore, </p>
  
  <p>Here is the code that detects intents;</p>
  
  <pre><code>#Detection of Dialogflow intents, project and input.
  def detect_intent_texts(project_id, session_id, texts, language_code):
     #Returns the result of detect intent with texts as inputs, later can implement same `session_id` between requests allows continuation of the conversaion.
      import dialogflow_v2 as dialogflow
      session_client = dialogflow.SessionsClient()
  
      session = session_client.session_path(project_id, session_id)
  #To ensure session path is correct - print('Session path: {}\n'.format(session))
  
      for text in texts:
          text_input = dialogflow.types.TextInput(text=text, language_code=language_code)
          query_input = dialogflow.types.QueryInput(text=text_input)
          response = session_client.detect_intent(session=session, query_input=query_input)
  
          print ('Chatbot:{}\n'.format(response.query_result.fulfillment_text))
  detect_intent_texts("chat-8","abc",["Hey"],"en-us")
  </code></pre>
  
  <p>I need to somehow say if THIS intent is triggered, get something from the db and display to user.</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>My current code in full, everything is looking right to me but it's throwing an error I don't understand, thanks to Sid8491 for the help so far.</p>
  
  <p>in short, my issue is, my previous code allowed me to type something and the chatbot respond, it was all in the console but it worked... The new code is supposed to allow me to say "When THIS intent is triggered, do THIS"</p>
  
  <pre><code>import os, json
  import sys
  import dialogflow
  from dialogflow_v2beta1 import *
  import firebase_admin
  import requests.packages.urllib3
  requests.packages.urllib3.disable_warnings()
  from firebase_admin import firestore
  from firebase_admin import credentials
  import requests.packages.urllib3
  from Tkinter import *
  from dialogflow_v2beta1 import agents_client
  import Tkinter as tk
  result = None
  window = Tk()
  
  def Response():
      #no need to use global here
      result = myText.get()
      displayText.configure(state='normal')
      displayText.insert(END, "User:"+ result + '\n')
      displayText.configure(state='disabled')
  
  #Creating the GUI
  myText = tk.StringVar()
  window.resizable(False, False)
  window.title("Chatbot")
  window.geometry('400x400')
  User_Input = tk.Entry(window, textvariable=myText, width=50).place(x=20, y=350)
  subButton = tk.Button(window, text="Send", command=Response).place(x =350, y=350)
  displayText = Text(window, height=20, width=40)
  displayText.pack()
  scroll = Scrollbar(window, command=displayText).pack(side=RIGHT)
  window.mainloop()
  
  #Initialize the firebase admin SDK
  cred = credentials.Certificate('./file.json')
  default_app = firebase_admin.initialize_app(cred)
  db = firestore.client()
  
  def getCourse():
      doc_ref = db.collection(u"Course_Information").document(u"CourseTypes")
      try:
          doc = doc_ref.get()
          return 'Document data: {}'.format(doc.to_dict())
      except google.cloud.exceptions.NotFound:
          return 'Not found'
  
  def detect_intent_text(project_id, session_id, text, language_code):
      GOOGLE_APPLICATION_CREDENTIALS=".chat-8.json"
      session_client = dialogflow.SessionsClient(GOOGLE_APPLICATION_CREDENTIALS)
  
      session = session_client.session_path(project_id, session_id)
  
      text_input = dialogflow.types.TextInput(
          text=text, language_code=language_code)
  
      query_input = dialogflow.types.QueryInput(text=text_input)
  
      response = session_client.detect_intent(
          session=session, query_input=query_input)
  
  queryText = [myText.get()]
  
  res = detect_intent_text('chat-8', 'session-test', queryText, 'en')
  intentName = res['query_result']['intent']['display_name']
  
  if intentName == 'CourseEnquiry':
      reponse = getCourse()
      print json.dumps({
          'fulfillmentText': reponse,
      })
  elif intentName == 'Greetings':
      print "Yo"
  
  detect_intent_texts("chat-8","abc", queryText,"en-us")
  </code></pre>
  
  <p>But I get this error:</p>
  
  <pre><code>C:\Users\chat\PycharmProjects\Chatbot\venv\Scripts\python.exe C:/Users/chat/PycharmProjects/Chatbot/venv/Chatbot.py
  Traceback (most recent call last):
    File "C:/Users/chat/PycharmProjects/Chatbot/venv/Chatbot.py", line 65, in &lt;module&gt;
      res = detect_intent_text('chat-8', 'session-test', queryText, 'en')
    File "C:/Users/chat/PycharmProjects/Chatbot/venv/Chatbot.py", line 51, in detect_intent_text
      session_client = dialogflow.SessionsClient(GOOGLE_APPLICATION_CREDENTIALS)
    File "C:\Users\chat\PycharmProjects\Chatbot\venv\lib\site-packages\dialogflow_v2\gapic\sessions_client.py", line 109, in __init__
      self.sessions_stub = (session_pb2.SessionsStub(channel))
    File "C:\Users\chat\PycharmProjects\Chatbot\venv\lib\site-packages\dialogflow_v2\proto\session_pb2.py", line 1248, in __init__
      self.DetectIntent = channel.unary_unary(
  AttributeError: 'str' object has no attribute 'unary_unary'
  
  Process finished with exit code 1
  </code></pre>