当前位置:   article > 正文

百度al的人体检测接口调用_access token invalid or no longer valid

access token invalid or no longer valid

1.准备工作

  • 在百度al,找到人体检测

 

  • 登录账号进入百度智能云

选择你要领取的接口(由于我之前领过了人体检测的接口,所以下面已经没有这个选项)

注意:领取接口需要认证

  •  创建应用

 

 创建成功会在应用列表显示应用,应用里面有我们编程需要用到的API Key 和 Secret Key

  •  查看人体检测的API文档,可以看到里面有调用API的请求方式,以及不同语言的代码例子

 2.编写访问接口的代码,采用python编程访问

  我们将百度al给的python例子复制出来,放到linux的Python中运行

不出意外,报错了,因为这个open打开的是我们要检测的图片文件,而我们linux里面的图片文件不是这个名字,所以需要把 '[本地文件]' 修改成我们需要检测的图片文件

修改完毕后,重新运行我们的代码

这里出现了一个错误, Access token invalid or no longer valid ,说明access_token是无效的。这是因为我们没有获取Access token ,我们参考获取 Access Token的技术文档,编写获取Access Token的代码

  1. # encoding:utf-8
  2. import requests
  3. # client_id 为官网获取的AK, client_secret 为官网获取的SK
  4. AK='应用的API Key'
  5. SK='应用的Secret Key'
  6. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(AK,SK)
  7. request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num"
  8. response = requests.get(host) #获取鉴权认证使用的access_token

 重新运行代码

 可以看到我们的Access Token已经获取成功了,但他还是显示Access Token无效,这是因为我们没有把Access Token,放入http post的请求上。

重新运行代码,可以看到接口调用成功

 完整代码:

  1. # encoding:utf-8
  2. import requests
  3. import base64
  4. '''
  5. 人体检测和属性识别
  6. '''
  7. # client_id 为官网获取的AK, client_secret 为官网获取的SK
  8. AK='应用的API Key'
  9. SK='应用的Secret Key'
  10. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(AK,SK)
  11. request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num"
  12. response = requests.get(host) #发起get请求获取鉴权认证使用的access_token
  13. if response:
  14. print (response.json()) #输出信息
  15. request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr"
  16. # 二进制方式打开图片文件
  17. f = open('image1.jpg', 'rb')
  18. img = base64.b64encode(f.read())
  19. params = {"image":img}
  20. access_token = response.json()['access_token'] #提取access_token的数据
  21. request_url = request_url + "?access_token=" + access_token #将access_token的数据放入url中
  22. headers = {'content-type': 'application/x-www-form-urlencoded'}
  23. response = requests.post(request_url, data=params, headers=headers) #发起post请求,调用接口
  24. if response:
  25. print (response.json()) #输出信息
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/498381
推荐阅读
相关标签
  

闽ICP备14008679号