日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)百度小程序教程:SessionKey
  • Session Key
    • 接口說明
    • 接口地址
    • 方法參數(shù)
      • Header 參數(shù)
      • post 參數(shù)
      • 若參數(shù)無誤,服務器將返回一段 JSON 文本,包含以下數(shù)據(jù)
      • 返回示例
      • 若請求錯誤,服務器將返回一段 JSON 文本,包含以下參數(shù)
      • 返回示例
      • 錯誤碼
      • 請求示例

    Session Key

    接口說明

    智能小程序在其服務端中發(fā)送 POST 請求到百度 oauth2.0 授權服務地址,并帶上對應的參數(shù),便可獲取到 Session Key 。

    接口地址

    獲取 Session Key 的 URL 地址 :

     
     
     
    1. https://spapi.baidu.com/oauth/jscode2sessionkey

    為了讓您的智能小程序運行在聯(lián)盟 App 上,我們對獲取 SessionKey 的接口做了升級。新接口可以兼容獲取百度內(nèi)部 App 和百度外部 App 的 SessionKey。

    您只需要將原接口地址

     
     
     
    1. https://openapi.baidu.com/nalogin/getSessionKeyByCode

    更改為

     
     
     
    1. https://spapi.baidu.com/oauth/jscode2sessionkey

    即可讓您的智能小程序在其它 App 上自動實現(xiàn)賬號關聯(lián)。

    方法參數(shù)

    Header 參數(shù)

    參數(shù)名 類型 是否必須 描述
    Content-Type Application/x-www-form-urlencoded HTTP 的實體首部字段,瀏覽器原生 form 表單

    post 參數(shù)

    參數(shù)名 是否必須 說明
    code 通過 swan.getLoginCode 獲取 Authorization Code
    特殊說明:code 中有@符號時,會請求對應的開源宿主,用戶身份校驗及 SessionKey 生成過程由開源宿主實現(xiàn)
    client_id 智能小程序的 AppKey
    智能小程序 AppKey 示例:4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c
    sk 智能小程序的 AppSecret

    若參數(shù)無誤,服務器將返回一段 JSON 文本,包含以下數(shù)據(jù)

    字段名 說明
    openid 用戶身份標識,由 appid 和 uid 生成
    不同用戶登錄同一個小程序獲取到的 openid 不同,同一個用戶登錄不同小程序獲取到的 openid 也不同
    session_key 用戶的 Session Key

    返回示例

     
     
     
    1. {
    2. openid: "l214zFqNrEuIEnp6m7Y01sw8yj",
    3. session_key: "981ce8b151c0599acf7ad1a673c6ff5e"
    4. }

    若請求錯誤,服務器將返回一段 JSON 文本,包含以下參數(shù)

    字段名 說明
    errno 錯誤碼,詳情見下方錯誤碼
    error 錯誤描述
    error_description 錯誤描述信息,用來幫助理解和解決發(fā)生的錯誤

    返回示例

     
     
     
    1. {
    2. "errno": 10010100,
    3. "error": "parameter is invalid",
    4. "error_description": "Key: 'Code2SessionKeyParam.ClientID' Error:Field validation for 'ClientID' failed on the 'required' tag"
    5. }

    錯誤碼

    錯誤碼 描述 錯誤原因自查
    10010100 參數(shù)錯誤或 code 的值無效 1 請檢查使用 client_id 參數(shù)是否是 appKey
    2 請檢查生成 code 和使用 code 的時間差是否超過了有效期,有效期為 10s
    3 請檢查生成 code 的小程序的 appKey 和當前請求接口的 client_id 是否一致
    10010400 client_id 與 sk 不匹配 1 請聯(lián)系小程序管理員檢查小程序 appSecret 是否有修改
    10010300 請求開源宿主失敗 1 信息為開源宿主返回,請參考 error_description 描述進行錯誤自查

    請求示例

    • PHP
    • GOLANG
     
     
     
    1. /**
    2. * 獲取sessionkey 方法
    3. * @param string $code 由swan.getLoginCode獲取的臨時登錄憑證
    4. * @param string $clientId 小程序appkey
    5. * @param string $sk 小程序appSecretKey
    6. */
    7. function reqGetSessionkey($code, $clientId, $sk)
    8. {
    9. $url = 'https://spapi.baidu.com/oauth/jscode2sessionkey';
    10. $data = array(
    11. "code" => $code,
    12. "client_id" => $clientId,
    13. "sk" => $sk
    14. );
    15. $ret = curlPost($url, $data);
    16. return $ret;
    17. }
    18. /**
    19. * curl POST請求工具類
    20. *
    21. * @param string $url
    22. * 請求的url地址
    23. * @param array $postDataArr
    24. * 傳遞的數(shù)組參數(shù)
    25. * @return string 檢測結果json字符串
    26. */
    27. function curlPost($url, $postDataArr)
    28. {
    29. $headerArr = array(
    30. "Content-type:application/x-www-form-urlencoded"
    31. );
    32. $curl = curl_init();
    33. curl_setopt($curl, CURLOPT_URL, $url);
    34. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    35. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    36. curl_setopt($curl, CURLOPT_POST, 1);
    37. curl_setopt($curl, CURLOPT_POSTFIELDS, $postDataArr);
    38. curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArr);
    39. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    40. $output = curl_exec($curl);
    41. curl_close($curl);
    42. return $output;
    43. }
    44. // 獲取sessionkey demo
    45. echo reqGetSessionkey("8ba01454ac57775d3692f5dbfcac7a28NW", "4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c", "xxx");
     
     
     
    1. package main
    2. import (
    3. "encoding/json"
    4. "fmt"
    5. "io/ioutil"
    6. "log"
    7. "net/http"
    8. "net/url"
    9. "strings"
    10. "time"
    11. )
    12. //返回數(shù)據(jù)結構
    13. type response struct {
    14. Errno int `json:"errno"`
    15. Error string `json:"error"`
    16. ErrorDescription string `json:"error_description"`
    17. Openid string `json:"openid"`
    18. SessionKey string `json:"session_key"`
    19. }
    20. /**
    21. * 測試demo
    22. */
    23. func main() {
    24. ret, err := ReqSessionKey("8ba01454ac57775d3692f5dbfcac7a28NW", "myAppKey", "myAppSecret")
    25. fmt.Println(ret, err)
    26. }
    27. func ReqSessionKey(code, clientId, sk string) (*response, error) {
    28. data := make(url.Values)
    29. //由swan.getLoginCode獲取的臨時登錄憑證
    30. data.Add("code", code)
    31. //小程序appkey
    32. data.Add("client_id", clientId)
    33. //小程序appSecretKey
    34. data.Add("sk", sk)
    35. ret, err := netPost("https://spapi.baidu.com/oauth/jscode2sessionkey", &data)
    36. return ret, err
    37. }
    38. /**
    39. * http 請求方法
    40. */
    41. func netPost(urlPath string, data *url.Values) (*response, error) {
    42. req, err := http.NewRequest("POST", urlPath, strings.NewReader(data.Encode()))
    43. req.Header.Add("content-type", "application/x-www-form-urlencoded")
    44. if err != nil {
    45. log.Println(err)
    46. return nil, err
    47. }
    48. client := &http.Client{Timeout: 5 * time.Second}
    49. resp, err := client.Do(req)
    50. if err != nil || resp.Body == nil {
    51. log.Println(err)
    52. return nil, err
    53. }
    54. defer resp.Body.Close()
    55. result, err := ioutil.ReadAll(resp.Body)
    56. if err != nil {
    57. log.Println(err)
    58. return nil, err
    59. }
    60. respData := &response{}
    61. err = json.Unmarshal(result, respData)
    62. if err != nil {
    63. log.Println(err)
    64. return nil, err
    65. }
    66. return respData, nil
    67. }

    網(wǎng)站題目:創(chuàng)新互聯(lián)百度小程序教程:SessionKey
    轉載來源:http://www.dlmjj.cn/article/dphcdsd.html