使用 Python 访问 Google Fit REST API
Accessing Google Fit REST API using Python
我想在服务器上使用Google Fit REST API并对Fit数据进行CRUD操作。用户已通过身份验证,https://www.googleapis.com/auth/fitness.activity.write,https://www.googleapis.com/auth/fitness.body.read,https://www.googleapis.com/auth/fitness.body.write 的权限已授予应用程序适合数据。一旦用户通过身份验证,服务器就会收到 UID 和 OAUTH_TOKEN.
UID = "XYZ"
OAUTH_TOKEN="FOO_BAR"
APP_SECRET_KEY = "XXX"
CLIENT_ID = "AAA"
但是每当我在休息时 get/post API 它会抛出 401 错误。
import requests
url = "https://www.googleapis.com/fitness/v1/users/%s/dataSources"% UID
headers = {'content-type': 'application/json','Authorization': "Bearer %s" % token}
r = requests.get(url, headers=headers)
print r.status_code
print r.content
输出
401
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
这应该会列出 https://developers.google.com/fit/rest/v1/get-started 中提到的所有可用数据源。
这是怎么回事?
花了很多时间,问题的解决方案如下。
UserId 应该是 me
并且 access_token 应该是最新的,因为访问令牌将在 60 分钟后过期。
UID = "XYZ"
OAUTH_TOKEN="FOO_BAR"
APP_SECRET_KEY = "XXX"
CLIENT_ID = "AAA"
import requests
url = "https://www.googleapis.com/fitness/v1/users/me/dataSources"
headers = { 'content-type': 'application/json',
'Authorization': 'Bearer %s' % OAUTH_TOKEN }
r = requests.get(url, headers=headers)
print r.status_code
print r.content
我想在服务器上使用Google Fit REST API并对Fit数据进行CRUD操作。用户已通过身份验证,https://www.googleapis.com/auth/fitness.activity.write,https://www.googleapis.com/auth/fitness.body.read,https://www.googleapis.com/auth/fitness.body.write 的权限已授予应用程序适合数据。一旦用户通过身份验证,服务器就会收到 UID 和 OAUTH_TOKEN.
UID = "XYZ"
OAUTH_TOKEN="FOO_BAR"
APP_SECRET_KEY = "XXX"
CLIENT_ID = "AAA"
但是每当我在休息时 get/post API 它会抛出 401 错误。
import requests
url = "https://www.googleapis.com/fitness/v1/users/%s/dataSources"% UID
headers = {'content-type': 'application/json','Authorization': "Bearer %s" % token}
r = requests.get(url, headers=headers)
print r.status_code
print r.content
输出
401
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
这应该会列出 https://developers.google.com/fit/rest/v1/get-started 中提到的所有可用数据源。
这是怎么回事?
花了很多时间,问题的解决方案如下。
UserId 应该是 me
并且 access_token 应该是最新的,因为访问令牌将在 60 分钟后过期。
UID = "XYZ"
OAUTH_TOKEN="FOO_BAR"
APP_SECRET_KEY = "XXX"
CLIENT_ID = "AAA"
import requests
url = "https://www.googleapis.com/fitness/v1/users/me/dataSources"
headers = { 'content-type': 'application/json',
'Authorization': 'Bearer %s' % OAUTH_TOKEN }
r = requests.get(url, headers=headers)
print r.status_code
print r.content