百度AI中的[access_token]的获取方法

如果要使用百度AI中的各种API,在构造URL的时候,所有URL都是由两部分组成:请求URL和URL参数,如下图所示

总结起来就是,只需要你修改access_token的值就可以直接调用API接口获取数据。

获取access_token

在说明文档中,对于access_token的获取好多人有点迷茫,不清楚怎么获取,如上图所示它说“通过API Key和Secret Key获取”后面给出参考链接,打开链接如下图所示
这里介绍了如何获取access_token,就是使用给出的链接加三个参数:grant_tpe client_id client_secret获取,其中第一个参数时固定值,也就是说我们只需要两个参数就可以获取access_token的值了。
总结一下:要获取access_token只需要client_id client_secret这两个参数传入下面的URL即可

# client_id 为官网获取的AK, client_secret 为官网获取的SK
URL = 'https://aip.baidubce/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'

所以使用API接口的问题就转换为获取这两个参数了。有了这两个参数就可以得到access_token,就可以构造完整的URL了。

那么什么是【官网获取的AK】、【官网获取的SK】呢,其实就是创建的应用授权码API Key和Secret Key。

如何获取API Key和Secret Key

1:登录百度智能云:登录云平台
百度系的账号是通用的,随便一个账号都行,登录后如下图所示

2:创建应用
向下翻页,在已开通的服务中找到你想要使用的应用,点击进去。
如我选用的人体分析这个API接口服务,我点击进去后如下图所示
3:点击创建应用
应用名称、应用描述随便填,然后就可以完成创建。再管理应用中就可以看到刚刚创建的应用了。
在这里我们可以找到我们需要的两个参数,复制到获取access_token的URL中,然后直接在浏览器地址栏中输入URL就可以返回access_token值,再将access_token传入API的URL中就可以正常调用API接口服务了。

# client_id 为官网获取的AK, client_secret 为官网获取的SK
URL = 'https://aip.baidubce/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'

输入浏览器地址栏:
打开的页面中,access_token就是我们需要的参数值。
或者通过程序访问,返回json格式数据后复制:

import requests 

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
    print(response.json())

返回json格式数据

{'refresh_token': '25.b1b737c4105c46b219d7496e125dd354.315360000.1896336396.282335-18399485', 'expires_in': 2592000, 'session_key': '9mzdWT4MkgznoKKHg7gq5dcqAnf1Zx5OJDUYZy7uJy9x8H6XwpREWIT/EIJk5wy5EETbTV8suUDQku5OC8dS1thzTaZi/w==', 'access_token': '24.bddf96de4e8c85f92ecdb41014813956.2592000.1583568396.282335-18399485', 'scope': 'public brain_all_scope brain_body_analysis brain_body_attr brain_body_number brain_driver_behavior brain_body_seg brain_gesture_detect brain_body_tracking brain_hand_analysis wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理', 'session_secret': '8a5c033448b5c6ebb0358b0eb452af95'}
[Finished in 3.4s]

至此,我们已经成功获取到access_token的值,access_token传入API的URL中就可以正常调用API接口服务了。
那么最终的API接口调用程序示例如下

import requests
import base64

'''
驾驶行为分析
'''
request_url = "https://aip.baidubce/rest/2.0/image-classify/v1/driver_behavior"
# 二进制方式打开图片文件
f = open('C:\\Users\\Administrator\\Desktop\\2.jpg', 'rb')
img = base64.b64encode(f.read())

params = {"image":img} 
access_token = '你的值'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

成功返回结果

{‘person_num’: 1, ‘person_info’: [{‘attributes’: {‘cellphone’: {‘threshold’: 0.6380000114440918, ‘score’: 6.125114305177703e-05}, ‘both_hands_leaving_wheel’: {‘threshold’: 0.4909999966621399, ‘score’: 2.461467192915734e-05}, ‘not_facing_front’: {‘threshold’: 0.4580000042915344, ‘score’: 0.00255197798833251}, ‘not_buckling_up’: {‘threshold’: 0.4490000009536743, ‘score’: 0.002068870468065143}, ‘smoke’: {‘threshold’: 0.4370000064373016, ‘score’: 7.385350181721151e-05}}, ‘location’: {‘width’: 893, ‘top’: 210, ‘height’: 829, ‘left’: 445}}], ‘log_id’: 2744953514731218950}

当然这个只是简单的示例,实际应用中还需要好好完善代码。

更多推荐

百度AI中的[access_token]的获取方法