【发布时间】:2021-04-08 18:47:17
【问题描述】:
对 REST API 完全陌生,仍在学习 python,所以我为一个简单的问题和一个菜鸟道歉。任何帮助表示赞赏。
我正在尝试使用 GET 请求从服务器中提取数据。他们的网站上提供了这样做的说明:Ayyeka REST API,我也阅读了他们的help documentation。它表明您必须使用 swagger_client,但我无法使其正常工作。相反,我使用 requests 模块拼凑了一些代码,我似乎使用 OAuth2 正确获取了令牌。
import os, string, time
from requests.auth import HTTPBasicAuth
from requests.structures import CaseInsensitiveDict
import base64
#credentials
client_id= "[client id goes here]"
client_secret = "[secret goes here]"
secret64 = base64.b64encode(bytes(client_id + ':' + client_secret, 'utf-8')).decode('utf-8')
#time and stream to pull data from
dtime = 1617821133
AyyekaChannel_text = '183534'
token_url = 'https://restapi.ayyeka.com/auth/token'
base_url = 'https://restapi.ayyeka.com '
auth = HTTPBasicAuth(client_id, client_secret)
client = BackendApplicationClient(client_id=client_id)
oauth = OAuth2Session(client=client)
token = oauth.fetch_token(token_url='https://restapi.ayyeka.com/auth/token', auth=auth)
access_token = token['access_token']
headers = {'Authorization': 'Bearer ' + access_token}
response = requests.get(url=base_url,headers=headers)
token 返回:
{'access_token': '[token string appears here]', 'token_type': 'JWT', 'expires_in': 3600,'expires_at': 1617909733.2390773}
现在我被卡住了,不知道如何通过 GET 传递它来获取身份验证令牌,也不知道如何使用 REST 命令来提取数据。我在正确的轨道上吗?完全离题? response 只是返回一堆错误,但我知道这无论如何都不对,但我无法弄清楚下一步,因为他们的文档使用了 swagger_client 。我不确定我是否应该回去尝试让 swagger_client 工作,或者这是否应该工作?
【问题讨论】:
-
使用请求会话确保 cookie 在每次 GET/PUT/POST 时都可以访问
-
感谢您的帮助!你介意详细说明一下吗?虽然熟悉python,但我对这样的事情完全是新手。我觉得自己像个傻瓜,但只是在努力学习!
标签: python rest python-requests swagger