esp32更新百度token

该博客讲述了如何使用示例代码从百度开放平台获取OAuth2.0 access_token的过程。通过HTTP GET请求,获取到包含access_token、refresh_token、session_key等信息的JSON响应。然后,使用cJSON库解析JSON数据,提取access_token并存储到全局变量中。博客还展示了错误处理和日志打印。
摘要由CSDN通过智能技术生成

注意每个用户的token请求参数不一样,具体情况看百度开放平台的相关文档

#define GET_TOKEN_URL "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=G86ZG9H52Mi1Ngf0uByK4IbA&client_secret=WkelePkHg8zozxwztB2gvGq1kF9AOUgL"

char baidu_access_token[80];

对应以上请求。返回结果如下:我们需要提取其中的access_token的值

{
    "refresh_token": "25.150b4d6b88fed9146f2f70a9e0e5b33e.315360000.1931916550.282335-23021308",
    "expires_in": 2592000,
    "session_key": "9mzdWui4vXxbxI0VHwyxpuWyLrq7zYM1GAsEH+Kx3AlOhtlWkInKQ5beXw5YwbW8FHdEal+lChIfsRuJ4BmN3HJpuRGr+A==",
    "access_token": "24.a4e1cd6302eb93afe8e6cdd4d604d68b.2592000.1619148550.282335-23021308",
    "scope": "brain_enhanced_asr audio_tts_post public nlp_simnet nlp_wordemb nlp_comtag nlp_dnnlm_cn brain_nlp_lexer brain_all_scope brain_nlp_comment_tag brain_nlp_dnnlm_cn brain_nlp_word_emb_vec brain_nlp_word_emb_sim brain_nlp_sentiment_classify brain_nlp_simnet brain_nlp_depparser brain_nlp_wordembedding brain_nlp_dnnlm_cn_legacy brain_nlp_simnet_legacy brain_nlp_comment_tag_legacy brain_nlp_lexer_custom brain_nlp_keyword brain_nlp_topic brain_nlp_ecnet brain_nlp_emotion brain_nlp_comment_tag_custom brain_nlp_news_summary brain_nlp_sentiment_classify_custom brain_nlp_address 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 smartapp_mapp_dev_manage 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_虚拟人物助理 smartapp_component smartapp_search_plugin avatar_video_test",
    "session_secret": "ffbb07a7b9e1f62d56bb124f9f2b49f3"
}
            config.url = GET_TOKEN_URL;
            config.method = HTTP_METHOD_GET;

            printf("start connect to url = %s\r\n",config.url);
            client = esp_http_client_init(&config);
            esp_http_client_perform(client);
            esp_http_client_close(client);
            esp_http_client_cleanup(client);

            cJSON *root = cJSON_Parse(http_data);
            if(root!=NULL)
            {
                cJSON *tok = cJSON_GetObjectItem(root, "access_token");
                char *newtoken = cJSON_GetStringValue(tok); //获取新token
                if(newtoken != NULL)
                {
                    memset(baidu_access_token, 0, 80);  //清零全局变量baidu_access_token
                    strncpy(baidu_access_token, newtoken, 80);  //再更新
                    ESP_LOGI(TAG, "new token = %s", baidu_access_token);
                }else{
                    ESP_LOGI(TAG, "parse string error");
                }
                
            }else{
                ESP_LOGI(TAG, "root error");
            }

            cJSON_Delete(root);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值