BIM 360 API - приложение Forge - getUsers возвращает «Эта учетная запись не существует» - PullRequest
1 голос
/ 04 марта 2020

Здесь впервые представлены API-интерфейсы RESTful, так что это может быть глупым вопросом: я пытаюсь запросить всех пользователей в учетной записи BIM 360 по следующей ссылке: https://forge.autodesk.com/en/docs/bim360/v1/reference/http/users-GET/

https://github.com/Autodesk-Forge/design.automation-python-tutorial

Я использую вышеуказанный репозиторий от xiaodongliang в качестве отправной точки, но я получаю следующую ошибку:

Get Users Failed! status = 404 ; message = {"code":1004,"message":"this account doesn't exist."}

Вот список изменений Я сделал:

  1. Изменил соответствующую информацию для моей учетной записи BIM 360 / Forge в config.py
  2. Добавлен модуль в forge_da.py для getUsers ()
  3. Соответственно изменил getToken (), чтобы 'scope': 'account: read'

Я проверил, что каждый ID , токен и секрет верны, и я добавил пользовательскую интеграцию в учетную запись BIM 360. Не уверен, что мне здесь не хватает. См. Добавленные и измененные модули ниже:

def getToken():
"""Obtain Forge token given a client id & secret"""
req = { 'client_id' : Forge_CLIENT_ID, 'client_secret': Forge_CLIENT_SECRET, 'grant_type' : 'client_credentials','scope':'account:read'}
resp = requests.post(Forge_BASE_URL+'/authentication/v1/authenticate', req)
if resp.status_code == 200:
    config.token = resp.json()['access_token']
    return config.token
else:
    print('Get Token Failed! status = {0} ; message = {1}'.format(resp.status_code,resp.text) )
    return None

def getUsers():
"""Query all BIM 360 Users in given Account"""
print(Forge_ACCOUNT_ID, config.token)
resp = requests.get(Forge_BASE_URL+'/hq/v1/accounts/:account_id/users', headers = {'Authorization': 'Bearer '+ config.token}, json={'account_id' : Forge_ACCOUNT_ID})
if resp.status_code == 200:
    config.users = resp.json()
    return config.users
else:
    print('Get Users Failed! status = {0} ; message = {1}'.format(resp.status_code,resp.text) )
    return None

Любая помощь с благодарностью. Заранее спасибо! Джозеф Фрейнд

1 Ответ

0 голосов
/ 04 марта 2020

Ух ты, я нашел свою ошибку. Я изменил следующую строку:

resp = requests.get(Forge_BASE_URL+'/hq/v1/accounts/:account_id/users', headers = {'Authorization': 'Bearer '+ config.token}, json={'account_id' : Forge_ACCOUNT_ID})

на:

resp = requests.get(Forge_BASE_URL+'/hq/v1/accounts/' + Forge_ACCOUNT_ID + '/users', headers = {'Authorization': 'Bearer '+ config.token})

Публикация вопроса заставила меня на самом деле посмотреть на него. Спасибо за помощь!

...