Python从API/Oauth身份验证获取信息
这是我第一次尝试使用API,API被称为OPS。 我希望在python代码中使用API(OAuth 2)获取信息 资源URL为: 我还收到: 消费者密钥:O220VLTQQADModifiedsF0YEQGM6C 消费者密钥:swWmodified3edjORU 文件指出: OPS使用OAuth框架进行身份验证和授权。此时此刻 同时,使用使用者密钥和 消费者的秘密 具体步骤如下: 步骤1:客户端将使用者密钥和使用者机密转换为 Base64Encode(使用者密钥:使用者机密)。 这应该使用开发客户机的语言以编程方式完成 应用于。在本例中,使用公共网站执行以下操作: 这个转换。 通过输入冒号分隔的客户端凭据,将生成编码响应。 然后将此响应用于基本身份验证 步骤2:客户端使用基本身份验证请求访问令牌,并提供其 在加密HTTPS上使用Base64编码的使用者密钥和使用者机密 连接: OPS使用basic对在授权标头中传递的客户端凭据进行身份验证 身份验证方法。 如果凭据有效,OPS将使用有效的访问令牌进行响应 步骤3:客户端使用授权头中的访问令牌访问OPS资源 (承载令牌)通过加密的HTTPS连接Python从API/Oauth身份验证获取信息,python,oauth-2.0,python-requests,Python,Oauth 2.0,Python Requests,这是我第一次尝试使用API,API被称为OPS。 我希望在python代码中使用API(OAuth 2)获取信息 资源URL为: 我还收到: 消费者密钥:O220VLTQQADModifiedsF0YEQGM6C 消费者密钥:swWmodified3edjORU 文件指出: OPS使用OAuth框架进行身份验证和授权。此时此刻 同时,使用使用者密钥和 消费者的秘密 具体步骤如下: 步骤1:客户端将使用者密钥和使用者机密转换为 Base64Encode(使用者密钥:使用者机密)。 这应该使用开发
我尝试了一些带有请求的代码示例,但到目前为止,没有任何效果。OAuth2中描述了客户端凭据流。客户端id和密码在基本身份验证方案中以base64编码,如中所述 您应该能够使用Python代码获取令牌,如:
import requests
import base64
url = 'https://ops.epo.org/3.2/auth/accesstoken'
data = {"grant_type": "client_credentials"}
creds = base64.b64encode("O220VlTQqAmodifiedsf0YeqgM6c:swWmodified3edjORU".encode())
headers = {'Authorization': 'Basic ' + creds.decode('UTF-8'), 'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(url, headers=headers, data=data)
access_token = response.json()["access_token"]
当使用前面的响应时,我可以获得一个令牌。(非常感谢您的回答) 所以我试着:
myUrl = 'http://ops.epo.org/3.2/rest-services/register/publication/EPODOC/EP2814089/biblio'
header = {'PRIVATE-TOKEN': myToken}
response = requests.get(myUrl, headers=header)
print(response.text)
但我得到了一个403错误
我终于找到了一个专门的图书馆来做这项工作:
但是我仍然不知道自己怎么做…用
header={'PRIVATE-TOKEN':myToken}
替换header={'Authorization':“Bearer”+myToken}