解决‘error_code‘: 110, ‘error_msg‘: ‘Access token invalid or no longer valid(百度智能云使用方法)

解决’error_code’: 110, ‘error_msg’: 'Access token invalid or no longer valid(百度智能云使用方法)
出现上述错误,是因为没有将例子中的access token的结果进行正确替换。
具体做法如下:

搜索百度智能云,注册登录
以车牌识别为例:
产品>汽车场景文字识别>立即使用>创建应用(归属选个人,免费)>查看详细信息(生成AD AK SK,将其复制)>使用方式>API文档
在这里插入图片描述
获取accrss token方法
import requests

client_id 为官网获取的AK, client_secret 为官网获取的SK

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

换上AK SK即可

import requests
( client_id 为官网获取的AK, client_secret 为官网获取的SK)
host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=80gfGN7D8C2ZcLc2Fwek77cF&client_secret=A7t3VHXkuBv0IaOYD7DobspFilsWThPj’
response = requests.get(host)
if response:
print(response.json())

执行后生成

在这里插入图片描述
注意access token后面第一个冒号里的内容
再将

import requests
import base64
request_url = “https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate”
f = open(’[本地文件]’, ‘rb’)
img = base64.b64encode(f.read())
params = {“image”:img}
access_token = ‘[调用鉴权接口获取的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())

里的本地文件换成本地文件名(cp.jpg)
将token换成上面程序生成的token(access token后面第一个冒号里的内容)

在这里插入图片描述
识别结果:
在这里插入图片描述
cp.jpg
cp.jpg

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常意味着你的Access Token无效或过期了。你需要获取一个有效的Access Token来调用百度OCR接口。 以下是一种获取Access Token方法: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; public class BaiduOCR { public static void main(String[] args) throws IOException { // 设置API Key和Secret Key String apiKey = "your_api_key"; String secretKey = "your_secret_key"; // 获取访问令牌 String accessToken = getAccessToken(apiKey, secretKey); // 调用百度OCR接口 String result = callBaiduOCR(accessToken); System.out.println(result); } // 获取访问令牌 private static String getAccessToken(String apiKey, String secretKey) throws IOException { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("https://aip.baidubce.com/oauth/2.0/token"); List<NameValuePair> params = new ArrayList<>(); params.add(new BasicNameValuePair("grant_type", "client_credentials")); params.add(new BasicNameValuePair("client_id", apiKey)); params.add(new BasicNameValuePair("client_secret", secretKey)); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, StandardCharsets.UTF_8); httpClient.close(); return result.split("\"")[3]; } // 调用百度OCR接口 private static String callBaiduOCR(String accessToken) throws IOException { // 调用百度OCR接口的代码 return ""; } } ``` 在这个示例代码中,你需要将`your_api_key`和`your_secret_key`替换为你自己的百度API Key和Secret Key。在`getAccessToken`方法中,我们使用了HTTP POST请求来获取访问令牌,并从响应中提取出Access Token。 在调用百度OCR接口的方法中,你需要将获取到的Access Token传递给接口调用,以确保你使用了有效的访问令牌。 请确保你已经按照这个方法获取了有效的Access Token并传递给了百度OCR接口调用。 希望这能解决你的问题!如果还有其他疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值