gpt4 book ai didi

python - 获取 strava v3 api python 的请求事件

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:00 28 4
gpt4 key购买 nike

编辑 - 因为我无法用 Strava 标记此内容,如果您有兴趣,这里是文档 - http://strava.github.io/api/

我顺利通过了身份验证,并在 response.read 中获得了 access_token(和我的运动员信息)。

下一步我遇到了问题:我想返回有关特定事件的信息。

    import urllib2
import urllib

access_token = str(tp[3]) #this comes from the response not shown
print access_token

ath_url = 'https://www.strava.com/api/v3/activities/108838256'

ath_val = values={'access_token':access_token}

ath_data = urllib.urlencode (ath_val)

ath_req = urllib2.Request(ath_url, ath_data)

ath_response = urllib2.urlopen(ath_req)

the_page = ath_response.read()

print the_page

错误是

    Traceback (most recent call last):
File "C:\Users\JordanR\Python2.6\documents\strava\auth.py", line 30, in <module>
ath_response = urllib2.urlopen(ath_req)
File "C:\Users\JordanR\Python2.6\lib\urllib2.py", line 124, in urlopen
return _opener.open(url, data, timeout)
File "C:\Users\JordanR\Python2.6\lib\urllib2.py", line 389, in open
response = meth(req, response)
File "C:\Users\JordanR\Python2.6\lib\urllib2.py", line 502, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Users\JordanR\Python2.6\lib\urllib2.py", line 427, in error
return self._call_chain(*args)
File "C:\Users\JordanR\Python2.6\lib\urllib2.py", line 361, in _call_chain
result = func(*args)
File "C:\Users\JordanR\Python2.6\lib\urllib2.py", line 510, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

404 是一个谜题,因为我知道此事件存在?

'access_token' 是正确的 header 信息吗?文档 ( http://strava.github.io/api/v3/activities/#get-details ) 使用 Authorization: Bearer ?我不确定 liburl 如何对信息的 Bearer 部分进行编码?

抱歉,如果我的某些术语有点偏离,我是新手。

回答了这个坏男孩。

import requests as r
access_token = tp[3]

ath_url = 'https://www.strava.com/api/v3/activities/108838256'
header = {'Authorization': 'Bearer 4b1d12006c51b685fd1a260490_example_jklfds'}

data = r.get(ath_url, headers=header).json()

它需要在 Dict 中添加“Bearer”部分。

感谢 idClark 的帮助

最佳答案

我更喜欢使用第三方 Requests模块。您确实需要遵循文档并使用授权:the API 中记录的 header

请求 has an arg for header data .然后我们可以创建一个字典,其中键是 Authorization,它的值是一个字符串 Bearer access_token

#install requests from pip if you want
import requests as r
url = 'https://www.strava.com/api/v3/activities/108838256'
header = {'Authorization': 'Bearer access_token'}
r.get(url, headers=header).json()

如果你真的想使用urllib2

#using urllib2
import urllib2
req = urllib.Request(url)
req.add_header('Authorization', 'Bearer access_token')
resp = urllib2.urlopen(req)
content = resp.read()

请记住access_token 需要是文字字符串值,例如acc09cds09c097d9c097v9

关于python - 获取 strava v3 api python 的请求事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426971/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com