百度AI鉴权认证_获取token的Python示例代码

百度AIP开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上access_token参数,获取Access Token的流程如下:

# encoding:utf-8
 
import requests
 
'''
百度AI鉴权认证机制
https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
'''
 
request_url = "https://aip.baidubce.com/oauth/2.0/token"
 
# 固定为client_credentials
grant_type = "client_credentials"
# 应用的API Key
client_id = "官网获取的AK"
# 应用的Secret Key
client_secret = "官网获取的SK"
params = {"grant_type":grant_type, "client_id":client_id, "client_secret":client_secret}
headers = {"content-type": "application/json"}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

服务器返回的JSON文本参数如下:
access_token: 要获取的Access Token;
expires_in: Access Token的有效期(秒为单位,一般为30天);
其他参数忽略,暂时不用;

以下是Java获取长期有效的access_token代码示例: ```java class MyAccessToken { 修改为自己的app和appsecret private static final StringID = "your appid"; private static final String APPSECRET = "yoursecret"; // 获取access_token接口 private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token"; // access_token保存时间(单位:毫秒) private static final long ACCESS_TOKEN_EXPIRE_TIME = 7200000; // 2小时 private static String access_token = null; private static long access_token_create_time = 0; /** * 获取access_token * * @return access_token字符串 */ public static String getAccessToken() { // 判断是否超过保存时间 long now_time = System.currentTimeMillis() / 1000; if (now_time - access_token_create_time > ACCESS_TOKEN_EXPIRE_TIME || access_token == null) { JSONObject json = new JSONObject(); try { json.put("grant_type", "client_credential"); json.put("appid", APPID); json.put("secret", APPSECRET); String result = HttpUtil.post(ACCESS_TOKEN_URL, json.toString()); JSONObject resultJson = new JSONObject(result); if (resultJson.has("access_token")) { access_token = resultJson.getString("access_token"); access_token_create_time = System.currentTimeMillis() / 1000; } else { throw new Exception(result); } } catch (Exception e) { System.out.println("获取access_token出现错误:" + e.getMessage()); } } return access_token; } /** * 发起HTTP请求获取返回结果 * * @param url HTTP请求URL * @param json HTTP请求body * @return 返回结果字符串 * @throws Exception */ private static String post(String url, String json) throws Exception { String result = null; CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); StringEntity entity = new StringEntity(json, "utf-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); httpPost.setEntity(entity); HttpResponse httpResponse = httpClient.execute(httpPost); if (httpResponse.getStatusLine().getStatusCode() == 200) { HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { result = EntityUtils.toString(httpEntity, "UTF-8"); } } httpClient.close(); return result; } } ``` 请注意,如果要使用上述示例代码,需要替换APPID和APPSECRET为真实的值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值