def qbo_callback():

    # https://github.com/sidecars/python-quickbooks
    from quickbooks import Oauth2SessionManager
    from quickbooks import QuickBooks

    error = request.args.get('error', '')
    if error:
        return "Error: " + error
    state = request.args.get('state', '')
    if not is_valid_state(state):
        # Uh-oh, this request wasn't started by us!
        abort(403)
    authorization_code = request.args.get('code')
    realm_id = request.args.get('realmId')

    session_manager = Oauth2SessionManager(
        client_id=CLIENT_ID,
        client_secret=CLIENT_SECRET,
        base_url='http://localhost:8000/qbo_callback',
    )

    session_manager.get_access_tokens(authorization_code)
    access_token = session_manager.access_token

    session_manager = Oauth2SessionManager(
    client_id=realm_id,
    client_secret=CLIENT_SECRET,
    access_token=access_token,
    )

    client = QuickBooks(
        sandbox=True,
        session_manager=session_manager,
        company_id=realm_id
    )
    
    from quickbooks.objects.customer import Customer
    customers = Customer.all(qb=client)

    import_googlesheets(customers)

    client.disconnect_account()

    # Note: In most cases, you'll want to store the access token, in, say,
    # a session for use in other parts of your web app.
    return "Your qbo authorization_code is %s realm_id is: %s customers: %s" % (authorization_code, realm_id, customers)