我创建了一个新的集合,并在APIGEE BaaS中为此集合添加了少量实体。我可以使用管理门户运行GET查询。
我正在尝试使用我的REST客户端调用它。
我使用以下网址:https://api.usergrid.com/myOrg/myapp/mycollection
但是,我得到以下错误:
{
"error": "unauthorized",
"timestamp": 1401855388323,
"duration": 1,
"exception": "org.apache.shiro.authz.UnauthorizedException",
"error_description": "Subject does not have permission [applications:get:xxxxxxxxxxx]"
}
我认为我需要在HTTP标头中为请求添加授权信息。但我无法找到有关预期的信息。
如何调用BaaS API?
答案 0 :(得分:1)
这种情况正在发生,因为您无权在未经身份验证的情况下访问集合(或者在某些情况下,您的身份验证令牌可能没有访问该特定集合的适当权限。
您可以在Apigee文档中了解managing permissions & roles。
虽然有几种快速解决问题的方法:
(最常见的)是验证您的用户帐户并使用适当的访问令牌(例如https://api.usergrid.com/myOrg/myapp/mycollection?access_token=<token>
)
虽然这不是你应该在客户端做的事情,但是对于服务器端请求或测试目的,你可以以类似的方式使用你的应用程序或org级别的client_id / client_secret(例如{{1} })
授予https://api.usergrid.com/myOrg/myapp/mycollection?client_id=<id>&client_id=<secret>
角色访问权限(此处为link to the docs)