论百度SDK的三种鉴权认证机制(三种API Key)的区别

前言

       百度SDK的认证体系有点复杂,有时候让人有点摸不着头脑。直到我看到了这个网页,我才有点豁然开朗。

        特此,我尝试使用了这三种鉴权方式,里面碰到了不少坑,于是将其整理成文档,倾情推出。

        对应的源码测试工程也放在csdn下,文末有链接,有需要的小伙伴可以去下载。

一、百度的鉴权机制

https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

    果然,百度有三种鉴权的机制。对于初学者而言非常容易搞懵。

二、第一种方式

2.1、创建应用

在ModuleBuilder中创建应用:

应用创建完毕(从上图来看这个应用覆盖的服务还是非常丰富的),如下图:

2.2、获取Key

将Key提取出来,如下图:

2.3、获取access_token

以下是获取access_token的代码:

import requests

API_KEY='填入申请得到的API Key',

SECRET_KEY = "填入申请得到的Secret Key"

def get_access_token():

    url = "https://aip.baidubce.com/oauth/2.0/token"

    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}

    response = requests.post(url, params=params)

    print(response.json())  # 打印整个JSON响应,检查结构

    return str(response.json().get("access_token"))

get_access_token()

运行结果如下:

说明能正确的获取access_token

其实从调试的信息来看,是一个键值的集合。(这个和第三种形成的一个长字符串有所不同)

三、第二种方式

3.1、表面上的API Key

从这个入口进入:

选API Key,可以看到已经建立好的三条API Key,如下图:

但是,千万要注意,这个API Key往往不是我们程序中直接要调用的API Key。

为什么这么说呢,可以参考知乎上的一篇文章:https://zhuanlan.zhihu.com/p/700011842

可参照这篇文章的第三部分,就可以了解到这里生成的API Key,实际上前缀字符串+签名摘要。所以,百度对这种关键字的称呼是比较混乱的,非常容易产生混淆。

3.2、程序和网站上的对应关系

分别对应百度网站上的:

四、第三种方式

4.1、Access Key和Secret Key的获取

进入到API Key的设定界面,如下图:

4.2、调用程序来获取token

详细代码:

import os

from qianfan import Qianfan

from qianfan.resources.console.iam import IAM

def test_create_token():

    response = IAM.create_bearer_token(

        expire_in_seconds=2592000,

        ak='申请得到的Access Key',

        sk='申请得到的Secret Access Key',

    )

    print(response.body['token'])

test_create_token()

这是运行的结果:

说明,可以获取到token,这个token一般比较长,大约有580个字符左右。

五、源码链接

https://download.csdn.net/download/quickrubber/90562323

(采用Python3.8,编译环境是PyCharm)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青花瓷

您的鼓励是我创作的巨大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值