Ejemplo n.º 1
0
def refresh():
    tokens = []
    filename = "core/apis/quickBooks/.token"
    f = open(filename, 'r')
    for line in f:
        tokens.append(line.rstrip())
    f.close()

    auth_client = AuthClient(
        settings.QB_CLIENT_ID,
        settings.QB_CLIENT_SECRET,
        settings.QB_REDIRECT_URI,
        settings.QB_ENVIRONMENT,
        access_token=tokens[0],
        refresh_token=tokens[1],
    )
    try:
        auth_client.refresh()
    except AuthClientError as e:
        print(e.status_code)
        print(e.intuit_tid)

    print("----------")
    print([
        auth_client.access_token == tokens[0],
        auth_client.refresh_token == tokens[1]
    ])
    print("----------")

    f = open(filename, 'w')
    f.write("{0}\n".format(auth_client.access_token))
    f.write("{0}\n".format(auth_client.refresh_token))
    f.close()
    return
Ejemplo n.º 2
0
def get_quickbooks_client():
    env = environ.Env()
    auth_client = AuthClient(
        client_id=env("QUICKBOOKS_CLIENT"),
        client_secret=env("QUICKBOOKS_SECRET"),
        environment="production",
        redirect_uri="http://localhost:8000/callback",
    )
    token_path = str(settings.ROOT_DIR / "secrets" /
                     "QUICKBOOKS_REFRESH_TOKEN")
    if os.path.exists(token_path):
        with open(token_path, "r") as refresh_token_file:
            refresh_token = refresh_token_file.read()
    else:
        print("NEED TO GENERATE REFRESH TOKEN!")
        return
    auth_client.refresh(refresh_token=refresh_token)
    with open(token_path, "w") as refresh_token_file:
        refresh_token_file.write(auth_client.refresh_token)
    client = QuickBooks(
        auth_client=auth_client,
        refresh_token=auth_client.refresh_token,
        company_id="9130348538823906",
        minorversion=62,
    )
    return client
Ejemplo n.º 3
0
def get_access_from_refresh(request):
    refresh_token = request.session.get('refresh_token', None)

    if refresh_token is None:
        return self.refresh()
    else:
        try:
            auth_client = AuthClient(
                settings.CLIENT_ID,
                settings.CLIENT_SECRET,
                settings.REDIRECT_URI,
                settings.ENVIRONMENT,
                access_token=request.session.get('access_token', None),
                refresh_token=refresh_token,
            )
            current_refresh_token = request.session.get('refresh_token')
            print('CURRENT REFRESH TOKEN IS: ', current_refresh_token)
            auth_client.refresh(refresh_token=current_refresh_token)
            print(auth_client)
        except AuthClientError as e:
            print(e.status_code)
            print(e.intuit_tid)

        return HttpResponse(json.dumps({
            'access_token':
            auth_client.access_token,
            'refresh_token':
            auth_client.refresh_token
        }),
                            content_type='application/json')
Ejemplo n.º 4
0
def get_refreshed_tokens(refresh_token,
                         client_id,
                         client_secret,
                         sandbox=False):
    enviroment = 'sandbox' if sandbox else 'production'
    auth_client = AuthClient(client_id, client_secret, '', enviroment)
    auth_client.refresh(refresh_token=refresh_token)
    return RefreshTokenResponse(
        auth_client.refresh_token,
        auth_client.x_refresh_token_expires_in,
        auth_client.access_token,
        auth_client.expires_in,
    )
Ejemplo n.º 5
0
def refresh(request):
    auth_client = AuthClient(
        settings.CLIENT_ID,
        settings.CLIENT_SECRET,
        settings.REDIRECT_URI,
        settings.ENVIRONMENT,
        access_token=request.session.get('access_token', None),
        refresh_token=request.session.get('refresh_token', None),
    )

    try:
        auth_client.refresh()
    except AuthClientError as e:
        print(e.status_code)
        print(e.intuit_tid)
    return HttpResponse('New refresh_token: {0}'.format(auth_client.refresh_token))
Ejemplo n.º 6
0
    def _create_client(self):
        auth_client = AuthClient(
            client_id=CLIENT_ID,
            client_secret=CLIENT_SECRET,
            environment=ENVIRONMENT,
            redirect_uri=
            'https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl',
        )

        # Refresh token endpoint
        auth_client.refresh(refresh_token=REFRESH_TOKEN)

        client = QuickBooks(auth_client=auth_client,
                            refresh_token=REFRESH_TOKEN,
                            company_id=COMPANY_ID,
                            minorversion=54)

        return client
Ejemplo n.º 7
0
def get_qbo_client(user, company):
    db = boto3.resource('dynamodb')
    table = db.Table(TABLE)
    token = get_user(user, company)['qbo_refresh_token']
    auth_client = AuthClient(CLIENT_KEY, CLIENT_SECRET, REDIRECT_URI, QBO_ENV)
    auth_client.refresh(refresh_token=token)
    client = QuickBooks(auth_client=auth_client,
                        refresh_token=auth_client.refresh_token,
                        environment=QBO_ENV,
                        company_id=company)
    response = table.update_item(
        Key={
            'company': company,
            'user': user
        },
        UpdateExpression="set #attr = :token",
        ExpressionAttributeValues={':token': auth_client.refresh_token},
        ExpressionAttributeNames={'#attr': 'qbo_refresh_token'})
    return client
Ejemplo n.º 8
0
def refresh_session():
    s = json.loads(get_secret())

    auth_client = AuthClient(
        client_id=s["client_id"],
        client_secret=s["client_secret"],
        redirect_uri=s["redirect_url"],
        access_token=s["access_token"],
        refresh_token=s["refresh_token"],
        environment="production",
    )

    # caution! invalid requests return {"error":"invalid_grant"} quietly
    auth_client.refresh()
    s["access_token"] = auth_client.access_token
    s["refresh_token"] = auth_client.refresh_token
    put_secret(json.dumps(s))
    QuickBooks.enable_global()
    QuickBooks(auth_client=auth_client, company_id="1401432085")
    return auth_client
Ejemplo n.º 9
0
    def _get_auth_client(self):
        '''Returns an OAuth2.0 Client for interacting
        with Quickbooks Reporting API.
        '''

        auth_client = AuthClient(
            self.config.get("client_id"),
            self.config.get("client_secret"),
            self.config.get("redirect_uri"),
            self.config.get("environment"),
            refresh_token=self.config.get("refresh_token"),
            realm_id=self.config.get("realm_id"))

        # Refresh to get new Access Token.
        auth_client.refresh()

        if auth_client.refresh_token == self.config.get("refresh_token"):
            LOGGER.info(
                "Config file Refresh Token and Refresh Token received from Refresh Token API are identical."
            )
        else:
            LOGGER.info(
                "Config file Refresh Token and Refresh Token received from Refresh Token API has drifted."
            )
            LOGGER.info(
                "Overwriting Config file with new Refresh Token values..")

            self.config["refresh_token"] = auth_client.refresh_token
            self.config[
                "refresh_token_expires_at"] = self._generate_token_expiration(
                    auth_client.x_refresh_token_expires_in)

            with open(self.args.config_path, 'r+') as f:
                json.dump(self.config, f, indent=2)

        # Check Refresh Token Expiry.
        self._check_token_expiry(auth_client)

        return auth_client
Ejemplo n.º 10
0
def refresh_token(company):

    c = company

    redirect_uri = "https://rc.royaltyclearinghouse.com/home/call-back"

    tokens_file = 'tokens.cfg'
    token_config = ConfigParser()
    token_config.read(tokens_file)

    realm_id = token_config[c]['realm_id']

    auth_client = AuthClient(
        client_id=token_config[c]['client_id'],
        client_secret=token_config[c]['client_secret'],
        redirect_uri=redirect_uri,
        environment=token_config[c]
        ['environment'],  # “sandbox” or “production”
    )

    refresh_tok = token_config[c]['refresh_token']

    try:
        auth_client.refresh(refresh_token=refresh_tok)
        rtoken = auth_client.refresh_token
        stoken = auth_client.access_token
        token_config.set(c, 'refresh_token', rtoken)
        token_config.set(c, 'access_token', stoken)
        with open(tokens_file, 'w+') as tokenfile:
            token_config.write(tokenfile)
        print(rtoken)
        print(stoken)
    except AuthClientError as e:
        print(e.status_code)
        print(e.content)
        print(e.intuit_tid)
Ejemplo n.º 11
0
def refresh_token(token):
    auth_client = AuthClient(CLIENT_KEY, CLIENT_SECRET, REDIRECT_URI, QBO_ENV)
    auth_client.refresh(refresh_token=token)
    return auth_client.refresh_token
Ejemplo n.º 12
0
# redirect_uri = "https://sandbox-quickbooks.api.intuit.com/v3"
# REFRESH_TOKEN = "AB11584276657dGSTYbj1MlF5tUqCz2arzhTUZcDHzW01W0QD9"
# REFRESH_TOKEN = 'AB1158436670497omUaXlA28cHBaiENiW4K3AdFFtEAzSHJEsm'
REFRESH_TOKEN = 'AB1158436670497omUaXlA28cHBaiENiW4K3AdFFtEAzSHJEasdfasdf'
realm_id = "4620816365025351930"

scopes = [
    Scopes.ACCOUNTING,
]



auth_client = AuthClient( client_id, client_secret, redirect_uri, environment )

try:
    auth_client.refresh(refresh_token=REFRESH_TOKEN)
except:
    print("Get saved token")    


# auth_client.refresh(refresh_token=REFRESH_TOKEN)
# # ACCESS_TOKEN = auth_client.access_token
# print(auth_client.access_token)

# # print(auth_client.auth_endpoint)
# print(auth_client.refresh_token)
# # auth_client.au
# client = QuickBooks(
#         auth_client=auth_client,
#         refresh_token= REFRESH_TOKEN ,
#         access_token=auth_client.access_token,
Ejemplo n.º 13
0
                                           '%Y-%m-%d %H:%M:%S.%f')
current_dt_time = datetime.datetime.now()
elapsed_dt_time = current_dt_time - start_dt_time
hr, min, sec = convert_timedelta(elapsed_dt_time)
print("hr=", hr)
print('min=', min)
print('access_token=', p.access_token)
print('refresh_token=', p.refresh_token)
print(' ')
print(' ***************')
print(' ')

auth_client = AuthClient(p.client_id,
                         p.client_secret,
                         p.redirect_uri,
                         p.environment,
                         refresh_token=p.refresh_token,
                         access_token=p.access_token)
scopes = [
    Scopes.ACCOUNTING,
]

url = auth_client.get_authorization_url(scopes)
r_token = auth_client.refresh(refresh_token=p.refresh_token)
print("refresh=", auth_client.refresh_token)
#auth_client.get_bearer_token(auth_code, realm_id=realm_id)
access_token = auth_client.access_token

url = '{0}/v3/company/{1}/companyinfo/{1}'.format(p.base_url, p.realm_id)
auth_header = 'Bearer {0}'.format(access_token)