{"id":186351,"date":"2023-08-19T10:06:14","date_gmt":"2023-08-19T02:06:14","guid":{"rendered":"http:\/\/www.idc.net\/help\/186351\/"},"modified":"2023-08-19T10:06:14","modified_gmt":"2023-08-19T02:06:14","slug":"%e5%90%8e%e6%b5%aa%e4%ba%91%e7%99%be%e5%ba%a6%e5%b0%8f%e7%a8%8b%e5%ba%8f%e6%95%99%e7%a8%8b%ef%bc%9asession-key","status":"publish","type":"post","link":"https:\/\/idc.net\/help\/186351\/","title":{"rendered":"\u540e\u6d6a\u4e91\u767e\u5ea6\u5c0f\u7a0b\u5e8f\u6559\u7a0b\uff1aSession Key"},"content":{"rendered":"<ul>\n<li>Session Key\n<ul>\n<li>\u63a5\u53e3\u8bf4\u660e<\/li>\n<li>\u63a5\u53e3\u5730\u5740<\/li>\n<li>\u65b9\u6cd5\u53c2\u6570\n<ul>\n<li>Header \u53c2\u6570<\/li>\n<li>post \u53c2\u6570<\/li>\n<li>\u82e5\u53c2\u6570\u65e0\u8bef\uff0c\u670d\u52a1\u5668\u5c06\u8fd4\u56de\u4e00\u6bb5 JSON \u6587\u672c\uff0c\u5305\u542b\u4ee5\u4e0b\u6570\u636e<\/li>\n<li>\u8fd4\u56de\u793a\u4f8b<\/li>\n<li>\u82e5\u8bf7\u6c42\u9519\u8bef\uff0c\u670d\u52a1\u5668\u5c06\u8fd4\u56de\u4e00\u6bb5 JSON \u6587\u672c\uff0c\u5305\u542b\u4ee5\u4e0b\u53c2\u6570<\/li>\n<li>\u8fd4\u56de\u793a\u4f8b<\/li>\n<li>\u9519\u8bef\u7801<\/li>\n<li>\u8bf7\u6c42\u793a\u4f8b\n<ul><\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1><span><\/span>Session Key<\/h1>\n<h2><span><\/span>\u63a5\u53e3\u8bf4\u660e<\/h2>\n<p>\u667a\u80fd\u5c0f\u7a0b\u5e8f\u5728\u5176\u670d\u52a1\u7aef\u4e2d\u53d1\u9001 POST \u8bf7\u6c42\u5230\u767e\u5ea6 oauth2.0 \u6388\u6743\u670d\u52a1\u5730\u5740\uff0c\u5e76\u5e26\u4e0a\u5bf9\u5e94\u7684\u53c2\u6570\uff0c\u4fbf\u53ef\u83b7\u53d6\u5230 Session Key \u3002<\/p>\n<h2><span><\/span>\u63a5\u53e3\u5730\u5740<\/h2>\n<p>\u83b7\u53d6 Session Key \u7684 URL \u5730\u5740 \uff1a<\/p>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><span>https<\/span><span>:<\/span><span>\/\/spapi.baidu.com\/oauth\/jscode2sessionkey<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n<p>\u4e3a\u4e86\u8ba9\u60a8\u7684\u667a\u80fd\u5c0f\u7a0b\u5e8f\u8fd0\u884c\u5728\u8054\u76df App \u4e0a\uff0c\u6211\u4eec\u5bf9\u83b7\u53d6 SessionKey \u7684\u63a5\u53e3\u505a\u4e86\u5347\u7ea7\u3002\u65b0\u63a5\u53e3\u53ef\u4ee5\u517c\u5bb9\u83b7\u53d6\u767e\u5ea6\u5185\u90e8 App \u548c\u767e\u5ea6\u5916\u90e8 App \u7684 SessionKey\u3002<\/p>\n<p>\u60a8\u53ea\u9700\u8981\u5c06\u539f\u63a5\u53e3\u5730\u5740<\/p>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><span>https<\/span><span>:<\/span><span>\/\/openapi.baidu.com\/nalogin\/getSessionKeyByCode<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n<p>\u66f4\u6539\u4e3a<\/p>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><span> https<\/span><span>:<\/span><span>\/\/spapi.baidu.com\/oauth\/jscode2sessionkey<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n<p>\u5373\u53ef\u8ba9\u60a8\u7684\u667a\u80fd\u5c0f\u7a0b\u5e8f\u5728\u5176\u5b83 App \u4e0a\u81ea\u52a8\u5b9e\u73b0\u8d26\u53f7\u5173\u8054\u3002<\/p>\n<h2><span><\/span>\u65b9\u6cd5\u53c2\u6570<\/h2>\n<h3><span><\/span>Header \u53c2\u6570<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u662f\u5426\u5fc5\u987b<\/th>\n<th>\u63cf\u8ff0<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Content-Type<\/td>\n<td>Application\/x-www-form-urlencoded<\/td>\n<td>\u662f<\/td>\n<td>HTTP \u7684\u5b9e\u4f53\u9996\u90e8\u5b57\u6bb5\uff0c\u6d4f\u89c8\u5668\u539f\u751f form \u8868\u5355<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span><\/span>post \u53c2\u6570<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570\u540d<\/th>\n<th>\u662f\u5426\u5fc5\u987b<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>code<\/td>\n<td>\u662f<\/td>\n<td>\u901a\u8fc7 swan.getLoginCode \u83b7\u53d6 Authorization Code<br \/>\u7279\u6b8a\u8bf4\u660e\uff1acode \u4e2d\u6709@\u7b26\u53f7\u65f6\uff0c\u4f1a\u8bf7\u6c42\u5bf9\u5e94\u7684\u5f00\u6e90\u5bbf\u4e3b\uff0c\u7528\u6237\u8eab\u4efd\u6821\u9a8c\u53ca SessionKey \u751f\u6210\u8fc7\u7a0b\u7531\u5f00\u6e90\u5bbf\u4e3b\u5b9e\u73b0<\/td>\n<\/tr>\n<tr>\n<td>client_id<\/td>\n<td>\u662f<\/td>\n<td>\u667a\u80fd\u5c0f\u7a0b\u5e8f\u7684 AppKey<br \/>\u667a\u80fd\u5c0f\u7a0b\u5e8f AppKey \u793a\u4f8b\uff1a4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c<\/td>\n<\/tr>\n<tr>\n<td>sk<\/td>\n<td>\u662f<\/td>\n<td>\u667a\u80fd\u5c0f\u7a0b\u5e8f\u7684 AppSecret<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span><\/span>\u82e5\u53c2\u6570\u65e0\u8bef\uff0c\u670d\u52a1\u5668\u5c06\u8fd4\u56de\u4e00\u6bb5 JSON \u6587\u672c\uff0c\u5305\u542b\u4ee5\u4e0b\u6570\u636e<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u5b57\u6bb5\u540d<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>openid<\/td>\n<td>\u7528\u6237\u8eab\u4efd\u6807\u8bc6\uff0c\u7531 appid \u548c uid \u751f\u6210<br \/>\u4e0d\u540c\u7528\u6237\u767b\u5f55\u540c\u4e00\u4e2a\u5c0f\u7a0b\u5e8f\u83b7\u53d6\u5230\u7684 openid \u4e0d\u540c\uff0c\u540c\u4e00\u4e2a\u7528\u6237\u767b\u5f55\u4e0d\u540c\u5c0f\u7a0b\u5e8f\u83b7\u53d6\u5230\u7684 openid \u4e5f\u4e0d\u540c<\/td>\n<\/tr>\n<tr>\n<td>session_key<\/td>\n<td>\u7528\u6237\u7684 Session Key<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span><\/span>\u8fd4\u56de\u793a\u4f8b<\/h3>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> openid<\/span><span>:<\/span><span> <\/span><span>\"l214zFqNrEuIEnp6m7Y01sw8yj\"<\/span><span>,<\/span><\/code><\/li>\n  \n  \n  <li><code><span> session_key<\/span><span>:<\/span><span> <\/span><span>\"981ce8b151c0599acf7ad1a673c6ff5e\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n<h3><span><\/span>\u82e5\u8bf7\u6c42\u9519\u8bef\uff0c\u670d\u52a1\u5668\u5c06\u8fd4\u56de\u4e00\u6bb5 JSON \u6587\u672c\uff0c\u5305\u542b\u4ee5\u4e0b\u53c2\u6570<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u5b57\u6bb5\u540d<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>errno<\/td>\n<td>\u9519\u8bef\u7801\uff0c\u8be6\u60c5\u89c1\u4e0b\u65b9\u9519\u8bef\u7801<\/td>\n<\/tr>\n<tr>\n<td>error<\/td>\n<td>\u9519\u8bef\u63cf\u8ff0<\/td>\n<\/tr>\n<tr>\n<td>error_description<\/td>\n<td>\u9519\u8bef\u63cf\u8ff0\u4fe1\u606f\uff0c\u7528\u6765\u5e2e\u52a9\u7406\u89e3\u548c\u89e3\u51b3\u53d1\u751f\u7684\u9519\u8bef<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span><\/span>\u8fd4\u56de\u793a\u4f8b<\/h3>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"errno\"<\/span><span>:<\/span><span> <\/span><span>10010100<\/span><span>,<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"error\"<\/span><span>:<\/span><span> <\/span><span>\"parameter is invalid\"<\/span><span>,<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"error_description\"<\/span><span>:<\/span><span> <\/span><span>\"Key: 'Code2SessionKeyParam.ClientID' Error:Field validation for 'ClientID' failed on the 'required' tag\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n<h3><span><\/span>\u9519\u8bef\u7801<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u9519\u8bef\u7801<\/th>\n<th>\u63cf\u8ff0<\/th>\n<th>\u9519\u8bef\u539f\u56e0\u81ea\u67e5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>10010100<\/td>\n<td>\u53c2\u6570\u9519\u8bef\u6216 code \u7684\u503c\u65e0\u6548<\/td>\n<td>1 \u8bf7\u68c0\u67e5\u4f7f\u7528 client_id \u53c2\u6570\u662f\u5426\u662f appKey<br \/>2 \u8bf7\u68c0\u67e5\u751f\u6210 code \u548c\u4f7f\u7528 code \u7684\u65f6\u95f4\u5dee\u662f\u5426\u8d85\u8fc7\u4e86\u6709\u6548\u671f\uff0c\u6709\u6548\u671f\u4e3a 10s<br \/>3 \u8bf7\u68c0\u67e5\u751f\u6210 code \u7684\u5c0f\u7a0b\u5e8f\u7684 appKey \u548c\u5f53\u524d\u8bf7\u6c42\u63a5\u53e3\u7684 client_id \u662f\u5426\u4e00\u81f4<\/td>\n<\/tr>\n<tr>\n<td>10010400<\/td>\n<td>client_id \u4e0e sk \u4e0d\u5339\u914d<\/td>\n<td>1 \u8bf7\u8054\u7cfb\u5c0f\u7a0b\u5e8f\u7ba1\u7406\u5458\u68c0\u67e5\u5c0f\u7a0b\u5e8f appSecret \u662f\u5426\u6709\u4fee\u6539<\/td>\n<\/tr>\n<tr>\n<td>10010300<\/td>\n<td>\u8bf7\u6c42\u5f00\u6e90\u5bbf\u4e3b\u5931\u8d25<\/td>\n<td>1 \u4fe1\u606f\u4e3a\u5f00\u6e90\u5bbf\u4e3b\u8fd4\u56de\uff0c\u8bf7\u53c2\u8003 error_description \u63cf\u8ff0\u8fdb\u884c\u9519\u8bef\u81ea\u67e5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span><\/span>\u8bf7\u6c42\u793a\u4f8b<\/h3>\n<ul>\n<li>PHP<\/li>\n<li>GOLANG<\/li>\n<\/ul>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><span>&lt;?<\/span><span>php<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>\/**<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * \u83b7\u53d6sessionkey \u65b9\u6cd5<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * @param string $code \u7531swan.getLoginCode\u83b7\u53d6\u7684\u4e34\u65f6\u767b\u5f55\u51ed\u8bc1<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * @param string $clientId \u5c0f\u7a0b\u5e8fappkey<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * @param string $sk \u5c0f\u7a0b\u5e8fappSecretKey<\/span><\/code><\/li>\n  \n  \n  <li><code><span> *\/<\/span><\/code><\/li>\n  \n  \n  <li><code><span>function<\/span><span> reqGetSessionkey<\/span><span>(<\/span><span>$code<\/span><span>,<\/span><span> $clientId<\/span><span>,<\/span><span> $sk<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> $url <\/span><span>=<\/span><span> <\/span><span>'https:\/\/spapi.baidu.com\/oauth\/jscode2sessionkey'<\/span><span>;<\/span><\/code><\/li>\n  \n  \n  <li><code><span> $data <\/span><span>=<\/span><span> array<\/span><span>(<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"code\"<\/span><span> <\/span><span>=&gt;<\/span><span> $code<\/span><span>,<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"client_id\"<\/span><span> <\/span><span>=&gt;<\/span><span> $clientId<\/span><span>,<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"sk\"<\/span><span> <\/span><span>=&gt;<\/span><span> $sk<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> $ret <\/span><span>=<\/span><span> curlPost<\/span><span>(<\/span><span>$url<\/span><span>,<\/span><span> $data<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> $ret<\/span><span>;<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>\/**<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * curl POST\u8bf7\u6c42\u5de5\u5177\u7c7b<\/span><\/code><\/li>\n  \n  \n  <li><code><span> *<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * @param string $url<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * \u8bf7\u6c42\u7684url\u5730\u5740<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * @param array $postDataArr<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * \u4f20\u9012\u7684\u6570\u7ec4\u53c2\u6570<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * @return string \u68c0\u6d4b\u7ed3\u679cjson\u5b57\u7b26\u4e32<\/span><\/code><\/li>\n  \n  \n  <li><code><span> *\/<\/span><\/code><\/li>\n  \n  \n  <li><code><span>function<\/span><span> curlPost<\/span><span>(<\/span><span>$url<\/span><span>,<\/span><span> $postDataArr<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> $headerArr <\/span><span>=<\/span><span> array<\/span><span>(<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"Content-type:application\/x-www-form-urlencoded\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> $curl <\/span><span>=<\/span><span> curl_init<\/span><span>();<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_URL<\/span><span>,<\/span><span> $url<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_SSL_VERIFYPEER<\/span><span>,<\/span><span> FALSE<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_SSL_VERIFYHOST<\/span><span>,<\/span><span> FALSE<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_POST<\/span><span>,<\/span><span> <\/span><span>1<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_POSTFIELDS<\/span><span>,<\/span><span> $postDataArr<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_HTTPHEADER<\/span><span>,<\/span><span> $headerArr<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_setopt<\/span><span>(<\/span><span>$curl<\/span><span>,<\/span><span> CURLOPT_RETURNTRANSFER<\/span><span>,<\/span><span> <\/span><span>1<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> $output <\/span><span>=<\/span><span> curl_exec<\/span><span>(<\/span><span>$curl<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><span> curl_close<\/span><span>(<\/span><span>$curl<\/span><span>);<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> $output<\/span><span>;<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>\/\/ \u83b7\u53d6sessionkey demo<\/span><\/code><\/li>\n  \n  \n  <li><code><span>echo reqGetSessionkey<\/span><span>(<\/span><span>\"8ba01454ac57775d3692f5dbfcac7a28NW\"<\/span><span>,<\/span><span> <\/span><span>\"4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c\"<\/span><span>,<\/span><span> <\/span><span>\"xxx\"<\/span><span>);<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n<pre>\n \n \n <ol>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>package<\/span><span> main<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>import<\/span><span> <\/span><span>(<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"encoding\/json\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"fmt\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"io\/ioutil\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"log\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"net\/http\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"net\/url\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"strings\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\"time\"<\/span><\/code><\/li>\n  \n  \n  <li><code><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>\/\/\u8fd4\u56de\u6570\u636e\u7ed3\u6784<\/span><\/code><\/li>\n  \n  \n  <li><code><span>type response <\/span><span>struct<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>Errno<\/span><span> <\/span><span>int<\/span><span> <\/span><span>`json:\"errno\"`<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>Error<\/span><span> <\/span><span>string<\/span><span> <\/span><span>`json:\"error\"`<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>ErrorDescription<\/span><span> <\/span><span>string<\/span><span> <\/span><span>`json:\"error_description\"`<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>Openid<\/span><span> <\/span><span>string<\/span><span> <\/span><span>`json:\"openid\"`<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>SessionKey<\/span><span> <\/span><span>string<\/span><span> <\/span><span>`json:\"session_key\"`<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>\/**<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * \u6d4b\u8bd5demo<\/span><\/code><\/li>\n  \n  \n  <li><code><span> *\/<\/span><\/code><\/li>\n  \n  \n  <li><code><span>func main<\/span><span>()<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> ret<\/span><span>,<\/span><span> err <\/span><span>:=<\/span><span> <\/span><span>ReqSessionKey<\/span><span>(<\/span><span>\"8ba01454ac57775d3692f5dbfcac7a28NW\"<\/span><span>,<\/span><span> <\/span><span>\"myAppKey\"<\/span><span>,<\/span><span> <\/span><span>\"myAppSecret\"<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> fmt<\/span><span>.<\/span><span>Println<\/span><span>(<\/span><span>ret<\/span><span>,<\/span><span> err<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>func <\/span><span>ReqSessionKey<\/span><span>(<\/span><span>code<\/span><span>,<\/span><span> clientId<\/span><span>,<\/span><span> sk <\/span><span>string<\/span><span>)<\/span><span> <\/span><span>(*<\/span><span>response<\/span><span>,<\/span><span> error<\/span><span>)<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> data <\/span><span>:=<\/span><span> make<\/span><span>(<\/span><span>url<\/span><span>.<\/span><span>Values<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\/\/\u7531swan.getLoginCode\u83b7\u53d6\u7684\u4e34\u65f6\u767b\u5f55\u51ed\u8bc1<\/span><\/code><\/li>\n  \n  \n  <li><code><span> data<\/span><span>.<\/span><span>Add<\/span><span>(<\/span><span>\"code\"<\/span><span>,<\/span><span> code<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\/\/\u5c0f\u7a0b\u5e8fappkey<\/span><\/code><\/li>\n  \n  \n  <li><code><span> data<\/span><span>.<\/span><span>Add<\/span><span>(<\/span><span>\"client_id\"<\/span><span>,<\/span><span> clientId<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>\/\/\u5c0f\u7a0b\u5e8fappSecretKey<\/span><\/code><\/li>\n  \n  \n  <li><code><span> data<\/span><span>.<\/span><span>Add<\/span><span>(<\/span><span>\"sk\"<\/span><span>,<\/span><span> sk<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> ret<\/span><span>,<\/span><span> err <\/span><span>:=<\/span><span> netPost<\/span><span>(<\/span><span>\"https:\/\/spapi.baidu.com\/oauth\/jscode2sessionkey\"<\/span><span>,<\/span><span> <\/span><span>&amp;<\/span><span>data<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> ret<\/span><span>,<\/span><span> err<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span>\/**<\/span><\/code><\/li>\n  \n  \n  <li><code><span> * http \u8bf7\u6c42\u65b9\u6cd5<\/span><\/code><\/li>\n  \n  \n  <li><code><span> *\/<\/span><\/code><\/li>\n  \n  \n  <li><code><span>func netPost<\/span><span>(<\/span><span>urlPath <\/span><span>string<\/span><span>,<\/span><span> data <\/span><span>*<\/span><span>url<\/span><span>.<\/span><span>Values<\/span><span>)<\/span><span> <\/span><span>(*<\/span><span>response<\/span><span>,<\/span><span> error<\/span><span>)<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> req<\/span><span>,<\/span><span> err <\/span><span>:=<\/span><span> http<\/span><span>.<\/span><span>NewRequest<\/span><span>(<\/span><span>\"POST\"<\/span><span>,<\/span><span> urlPath<\/span><span>,<\/span><span> strings<\/span><span>.<\/span><span>NewReader<\/span><span>(<\/span><span>data<\/span><span>.<\/span><span>Encode<\/span><span>()))<\/span><\/code><\/li>\n  \n  \n  <li><code><span> req<\/span><span>.<\/span><span>Header<\/span><span>.<\/span><span>Add<\/span><span>(<\/span><span>\"content-type\"<\/span><span>,<\/span><span> <\/span><span>\"application\/x-www-form-urlencoded\"<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>if<\/span><span> err <\/span><span>!=<\/span><span> <\/span><span>nil<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> log<\/span><span>.<\/span><span>Println<\/span><span>(<\/span><span>err<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> <\/span><span>nil<\/span><span>,<\/span><span> err<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><span> client <\/span><span>:=<\/span><span> <\/span><span>&amp;<\/span><span>http<\/span><span>.<\/span><span>Client<\/span><span>{<\/span><span>Timeout<\/span><span>:<\/span><span> <\/span><span>5<\/span><span> <\/span><span>*<\/span><span> time<\/span><span>.<\/span><span>Second<\/span><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><span> resp<\/span><span>,<\/span><span> err <\/span><span>:=<\/span><span> client<\/span><span>.<\/span><span>Do<\/span><span>(<\/span><span>req<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>if<\/span><span> err <\/span><span>!=<\/span><span> <\/span><span>nil<\/span><span> <\/span><span>||<\/span><span> resp<\/span><span>.<\/span><span>Body<\/span><span> <\/span><span>==<\/span><span> <\/span><span>nil<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> log<\/span><span>.<\/span><span>Println<\/span><span>(<\/span><span>err<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> <\/span><span>nil<\/span><span>,<\/span><span> err<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><span> defer resp<\/span><span>.<\/span><span>Body<\/span><span>.<\/span><span>Close<\/span><span>()<\/span><\/code><\/li>\n  \n  \n  <li><code><span> result<\/span><span>,<\/span><span> err <\/span><span>:=<\/span><span> ioutil<\/span><span>.<\/span><span>ReadAll<\/span><span>(<\/span><span>resp<\/span><span>.<\/span><span>Body<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>if<\/span><span> err <\/span><span>!=<\/span><span> <\/span><span>nil<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> log<\/span><span>.<\/span><span>Println<\/span><span>(<\/span><span>err<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> <\/span><span>nil<\/span><span>,<\/span><span> err<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><span> respData <\/span><span>:=<\/span><span> <\/span><span>&amp;<\/span><span>response<\/span><span>{}<\/span><\/code><\/li>\n  \n  \n  <li><code><span> err <\/span><span>=<\/span><span> json<\/span><span>.<\/span><span>Unmarshal<\/span><span>(<\/span><span>result<\/span><span>,<\/span><span> respData<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>if<\/span><span> err <\/span><span>!=<\/span><span> <\/span><span>nil<\/span><span> <\/span><span>{<\/span><\/code><\/li>\n  \n  \n  <li><code><span> log<\/span><span>.<\/span><span>Println<\/span><span>(<\/span><span>err<\/span><span>)<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> <\/span><span>nil<\/span><span>,<\/span><span> err<\/span><\/code><\/li>\n  \n  \n  <li><code><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>}<\/span><\/code><\/li>\n  \n  \n  <li><code><span> <\/span><span>return<\/span><span> respData<\/span><span>,<\/span><span> <\/span><span>nil<\/span><\/code><\/li>\n  \n  \n  <li><code><span>}<\/span><\/code><\/li>\n \n \n <\/ol><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Session Key \u63a5\u53e3\u8bf4\u660e \u63a5\u53e3\u5730\u5740 \u65b9\u6cd5\u53c2\u6570 Header \u53c2\u6570 post \u53c2\u6570 \u82e5\u53c2\u6570\u65e0\u8bef\uff0c\u670d\u52a1\u5668\u5c06 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[182398],"tags":[],"class_list":["post-186351","post","type-post","status-publish","format-standard","hentry","category-mini-program"],"_links":{"self":[{"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/posts\/186351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/comments?post=186351"}],"version-history":[{"count":0,"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/posts\/186351\/revisions"}],"wp:attachment":[{"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/media?parent=186351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/categories?post=186351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idc.net\/help\/wp-json\/wp\/v2\/tags?post=186351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}