В настоящее время я работаю над приложением Rails 5.2, где я использую сервис форм FormStack.Formstack использует Box для хранения сервисов.Я начал использовать Boxr gem для взаимодействия с Box API.
Для создания client
вам понадобится токен разработчика.
client = Boxr::Client.new('{BOX_DEVELOPER_TOKEN}')
Однако срок действия BOX_DEVELOPER_TOKEN
истекает каждые 60 минут.Поэтому я решил использовать JWT для аутентификации.
Поэтому я генерирую token
следующим образом:
token = Boxr::get_enterprise_token(private_key: ENV.fetch('JWT_PRIVATE_KEY'), private_key_password: ENV.fetch('JWT_PRIVATE_KEY_PASSWORD'), public_key_id: ENV.fetch('JWT_PUBLIC_KEY_ID'), enterprise_id: ENV.fetch('BOX_ENTERPRISE_ID'), client_id: ENV.fetch('BOX_CLIENT_ID'), client_secret: ENV.fetch('BOX_CLIENT_SECRET'))
Это то, что я затем передаю для генерации клиента:
client = Boxr::Client.new(token)
Это создает клиента:
#<Boxr::Client:0x000055fd60abb7e8
@access_token={"access_token"=>"xxxxxxxxxxxxxxxx", "expires_in"=>3782, "restricted_to"=>[], "token_type"=>"bearer"},
@as_user_id=nil,
@client_id="xxxxxxxxxxxxxxx",
@client_secret="xxxxxxxxxxxx",
@enterprise_id="xxxxxxxxxxxxx",
@identifier=nil,
@jwt_private_key=
"-----BEGIN ENCRYPTED PRIVATE KEY-----xxxxxxxxxxxxxx",
@jwt_private_key_password="xxxxxxxxxxxxxxx",
@jwt_public_key_id="xxxxxxxxxxxxxx",
@refresh_token=nil,
@token_refresh_listener=nil>
Однако, когда я пытаюсь извлечь папку по идентификатору, я получаю сообщение об ошибке, которое не получилось, когда я передал BOX_DEVELOPER_TOKEN
для созданияклиент.
folder = client.folder_from_id("12345678")
Boxr::BoxrError: 404: Not Found
from /usr/local/bundle/gems/boxr-1.4.0/lib/boxr/client.rb:239:in `check_response_status'
В настройках предприятия я предоставил доступ к приложению, предоставив API TOKEN.Я не уверен, почему я не могу получить папку.Когда я иду к идентификатору папки, папка там и в консоли разработчика, у меня есть доступ администратора.Любая помощь?