【发布时间】:2017-11-26 08:00:30
【问题描述】:
让我先说我可能忽略了一些简单的事情。
我正在尝试使用 Python 和 CF API 编写对我的 Bluemix 帐户的一些操作脚本。
首先到https://api.ng.bluemix.net/info获取authorization_endpoint,https://login.ng.bluemix.net/UAALoginServerWAR/
response = requests.get('https://api.ng.bluemix.net/info')
然后发布到 authorization_endpoint 以获取 oauth 令牌。
results = response.json()
auth_endpoint = results['authorization_endpoint'] + 'oauth/token?grant_type=password&client=cf'
http_payload = {
'username': id,
'password': pw,
'client_id': 'cf'
}
auth = ('cf', '')
response = requests.post(auth_endpoint, data=http_payload, auth=auth)
然后使用返回的 oauth 令牌调用 CF API,在本例中为 https://api.ng.bluemix.net/v2/organizations。
results = response.json()
url = 'https://api.ng.bluemix.net/v2/organizations'
authorization = results['token_type'] + ' ' + results['access_token']
http_headers = {
'accept': 'application/json',
'content-type': 'application/json',
'authorization': authorization
}
response = requests.get(url, headers=http_headers)
但这会导致 404,{"description": "Unknown request", "error_code": "CF-NotFound", "code": 10000}。这是正确的方法吗?我忽略了什么?
【问题讨论】:
标签: python api oauth ibm-cloud cloud-foundry