+++
title = "Учебное пособие по API: создание токенов API и информационных панелей для организации"
keywords = ["harvest", "tutorials", "API", "Token", "Org", "Organization"]
aliases =["/docs/harvest/latest/tutorials/api_org_token_howto/"]
weight = 150
+++

# Создание токенов API и информационных панелей для организации

Используйте API Harvest для настройки новых организаций Harvest или для добавления динамически создаваемых информационных панелей в существующую организацию.

## Аутентификация

Существует два метода аутентификации для доступа к API:

- Базовая аутентификация: пользователь Harvest Admin может получить доступ к некоторым частям API Harvest с помощью базовой аутентификации.
- Токены API: Доступ ко всем действиям организации осуществляется через токен API. Токен API связан с организацией. Его можно использовать для создания информационных панелей и других компонентов, специфичных для данной организации.

## Как создать новую организацию и токен API

Задача состоит в том, чтобы создать новую организацию, а затем добавить токен, который могут использовать другие пользователи. В приведенных ниже примерах, в которых используется базовая аутентификация, пользователь - "admin", а пароль - "admin`.
1. [Create the org](http://docs.harvest.org/http_api/org/#create-organization). Here is an example using curl:
    ```bash
    curl -X POST -H "Content-Type: application/json" -d '{"name":"apiorg"}' http://admin:admin@localhost:3000/api/orgs
    ```

    This should return a response: `{"message":"Organization created","orgId":6}`. Use the orgId for the next steps.

1. Optional step. If the org was created previously and/or step 3 fails then first [add your Admin user to the org](http://docs.harvest.org/http_api/org/#add-user-in-organization):
    ```bash
    curl -X POST -H "Content-Type: application/json" -d '{"loginOrEmail":"admin", "role": "Admin"}' http://admin:admin@localhost:3000/api/orgs/<org id of new org>/users
    ```

1. [Switch the org context for the Admin user to the new org](http://docs.harvest.org/http_api/user/#switch-user-context-for-signed-in-user):
    ```bash
    curl -X POST http://admin:admin@localhost:3000/api/user/using/<id of new org>
    ```

1. [Create the API token](http://docs.harvest.org/http_api/auth/#create-api-key):
    ```bash
    curl -X POST -H "Content-Type: application/json" -d '{"name":"apikeycurl", "role": "Admin"}' http://admin:admin@localhost:3000/api/auth/keys
    ```

Это должно вернуть ответ: `{"name":"apikeycurl","key":"eyJrIjoiR0ZXZmt1UFc0OEpIOGN5RWdUalBJTllUTk83VlhtVGwiLCJuIjoiYXBpa2V5Y3VybCIsImlkIjo2fQ=="}`.

    Сохраните возвращенный здесь ключ в вашем менеджере паролей, так как в будущем его невозможно будет получить повторно.

## Как добавить панель мониторинга

Используя токен, созданный на предыдущем шаге, вы можете создать панель мониторинга или выполнять другие действия без необходимости переключения организаций.
1. [Add a dashboard](http://docs.harvest.org/http_api/dashboard/#create-update-dashboard) использование ключа (или токена на предъявителя, как его еще называют):

  ```bash
  curl -X POST --insecure -H "Authorization: Bearer eyJrIjoiR0ZXZmt1UFc0OEpIOGN5RWdUalBJTllUTk83VlhtVGwiLCJuIjoiYXBpa2V5Y3VybCIsImlkIjo2fQ==" -H "Content-Type: application/json" -d '{
    "dashboard": {
      "id": null,
      "title": "Production Overview",
      "tags": [ "templated" ],
      "timezone": "browser",
      "rows": [
        {
        }
      ],
      "schemaVersion": 6,
      "version": 0
    },
    "overwrite": false
  }' http://localhost:3000/api/dashboards/db
  ```

> ** Примечание:** Если вы экспортируете панель мониторинга для внешнего доступа с помощью меню "Поделиться" > "Экспорт" в пользовательском интерфейсе Harvest, вы не сможете импортировать эту панель мониторинга. Вместо этого нажмите ** Просмотреть JSON ** и сохраните его в файл или извлеките выходные данные JSON через API.