Autodesk Forge API - настройка областей данных для чтения, записи и создания - PullRequest
0 голосов
/ 19 апреля 2019

Я изначально создал приложение и начал разрабатывать его, используя только данные: прочитайте область действия. Теперь я понял, что мне нужны данные: также создайте область.

  1. Есть ли в настройках приложения что-то, что мне нужно изменить?
  2. Включает ли область создания разрешения на чтение, а затем область записи включает создание и чтение, или эту область необходимо отправлять отдельно?
  3. Если отдельно, как это делается, когда пользователь дает разрешение на приложение? Это что-то вроде & scope = data: read & scope: create
  4. Мне не нужно хранить, а затем использовать два токена, не так ли?
  5. Как это обрабатывается при использовании curl? Являются ли области чтения и создания, отправленные в массиве, примерно такими ...

    $response = $client->request('POST', 'https://developer.api.autodesk.com/authentication/v1/gettoken', [
        'form_params' => [
            'grant_type' => 'authorization_code',
            'code' => $authCode,
            'client_id' => $FusionID,
            'client_secret' => $FusionSecret,
            'redirect_uri' => 'https://www.example.com/fusionauth',
            'scope' => array('data'=>'create', 'data'=>'read')
        ]
    ]);
    

Опять же, возможно, вы используете только ту область, которая вам нужна, и вам нужно хранить отдельные токены, но мне это не кажется правильным.

1 Ответ

0 голосов
/ 19 апреля 2019

Есть ли в настройках приложения что-то, что мне нужно изменить?

Если под app settings вы подразумевали на портале Forge App, то вам нужно только указать там API (убедитесь, что они проверены на странице), к которым вашему приложению потребуется доступ.

Включает ли область создания разрешения на чтение, а затем область записи включает создание и чтение, или эту область необходимо отправлять отдельно?

Нет, так не работает - вам нужно будет явно указать каждый из них.

Если отдельно, как это делается, когда пользователь дает разрешение на приложение? Это что-то вроде & scope = data: read & scope: create

Нет, переменные области видимости разделены пробелом. Для получения трехстороннего подтверждения вам необходимо получить код авторизации, перенаправив пользователя для аутентификации на нашем портале входа в систему, прежде чем переходить к токенам доступа, и там вам нужно будет указать комбинации адресов перенаправления и области действия в URL-адресе запроса (не забудьте URLEncode их), такие как https://developer.api.autodesk.com/authentication/v1/authorize?response_type=code&client_id=obQDn8P0GanGFQha4ngKKVWcxwyvFAGE&redirect_uri=http%3A%2F%2Fsampleapp.com%2Foauth%2Fcallback%3Ffoo%3Dbar&scope=data:read. Подробнее см. здесь .

И ознакомьтесь с нашим официальным PHP клиентским SDK - это сэкономит вам массу усилий и времени.

Мне не нужно хранить, а затем использовать два токена, не так ли?

Если ваш токен имеет достаточные права доступа (скажем, data:read и data:create), тогда нет.

Как это обрабатывается при использовании curl? Являются ли области чтения и создания, отправленные в массиве, примерно такими ...

Для cURL см. Образцы здесь: https://forge.autodesk.com/en/docs/oauth/v2/tutorials/get-2-legged-token/

И, как мы уже говорили выше, вам нужно будет указать области действия при перенаправлении пользователя на аутентификацию, поэтому в вашем запросе на получение токена возможного доступа вы должны что-то вроде:

$response = $client->request('POST', 'https://developer.api.autodesk.com/authentication/v1/gettoken', [
     'form_params' => [
        'grant_type' => 'authorization_code',
        'code' => $authCode,
        'client_id' => $FusionID,
        'client_secret' => $FusionSecret,
        'redirect_uri' => 'https://www.example.com/fusionauth'
        )
    ]
]);
...