# Rasa Google Drive API

**URL:** <https://forum.rasa.com/t/rasa-google-drive-api/25743>\
**Category:** \[Deprecated\] Rasa X Community Edition\
**Created:** [March 6, 2020, 11:29am UTC](https://forum.rasa.com/t/rasa-google-drive-api/25743 "2020-03-06T11:29:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![athenasaurav](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/athenasaurav/32/8139_2.png) [@athenasaurav](https://forum.rasa.com/u/athenasaurav)\
**Post date:** [March 6, 2020, 11:29am UTC](https://forum.rasa.com/t/rasa-google-drive-api/25743/1 "2020-03-06T11:29:30Z")

</div>

I am trying to fetch the google drive documents into chatbot using following code using actions.py file:

from **future** import print\_function from typing import Any, Text, Dict, List

# 

from rasa\_sdk import Action, Tracker from rasa\_sdk.executor import CollectingDispatcher from rasa\_sdk.events import SlotSet

# 

# 

class ActionQuestion(Action): # def name(self) -\> Text: return “action\_question”

```
def run(self, dispatcher: CollectingDispatcher,

        tracker: Tracker,
        domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
    import pickle
    import os.path

    # If modifying these scopes, delete the file token.pickle.
    SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']

    def main():
        """Shows basic usage of the Drive v3 API.
        Prints the names and ids of the first 10 files the user has access to.
        """
        creds = None
        # The file token.pickle stores the user's access and refresh tokens, and is
        # created automatically when the authorization flow completes for the first
        # time.
        if os.path.exists('token.pickle'):
            with open('token.pickle', 'rb') as token:
                creds = pickle.load(token)
        # If there are no (valid) credentials available, let the user log in.
        if not creds or not creds.valid:
            if creds and creds.expired and creds.refresh_token:
                creds.refresh(Request())
            else:
                flow = InstalledAppFlow.from_client_secrets_file(
                    'credentials.json', SCOPES)
                creds = flow.run_local_server(port=0)
            # Save the credentials for the next run
            with open('token.pickle', 'wb') as token:
                pickle.dump(creds, token)

        service = build('drive', 'v3', credentials=creds)
        dispatcher.utter_message('1st')
        # Call the Drive v3 API
        results = service.files().list(
            pageSize=10, fields="nextPageToken, files(id, name)").execute()
        items = results.get('files', [])

        if not items:
            dispatcher.utter_message('No files found.')
        else:
            print('Files:')
            for item in items:
                dispatcher.utter_message(u'{0} ({1})'.format(item['name'], item['id']))

    if __name__ == ' __main__':
        main()

    dispatcher.utter_message('Hi')
    return []

```

It is not returning files. What possibly i m doing wrong. Working fine locally in jupyter notebooks.

---

<div class="post-metadata">

**Author:** ![athenasaurav](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/athenasaurav/32/8139_2.png) [@athenasaurav](https://forum.rasa.com/u/athenasaurav)\
**Post date:** [March 6, 2020, 11:54am UTC](https://forum.rasa.com/t/rasa-google-drive-api/25743/2 "2020-03-06T11:54:49Z")

</div>

Did it. Solved no issue.

---

<div class="post-metadata">

**Author:** ![event-wala](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/event-wala/32/7618_2.png) [@event-wala](https://forum.rasa.com/u/event-wala)\
**Post date:** [March 23, 2020, 10:19pm UTC](https://forum.rasa.com/t/rasa-google-drive-api/25743/3 "2020-03-23T22:19:13Z")

</div>

Can you please update the solution?
