国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

抖音小程序實踐三:接口開發(fā)指南

這篇具有很好參考價值的文章主要介紹了抖音小程序實踐三:接口開發(fā)指南。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

通過官方文檔可以更系統(tǒng)的學習到所有的接口,我這邊羅列一下我自己用到測試過的接口供大家參考。

  1. 前端-小程序對接官方文檔:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/user-information/tt-get-user-info
  2. 服務端-小程序官方文檔:https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/server-api-introduction

抖音api接口文檔,直播業(yè)務,小程序,前端,javascript

1.前端-獲取用戶信息授權

API文檔:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/user-information/tt-get-user-info

// tt.getUserProfile(); 獲取用戶的基本信息,只可在 tap和支付 事件回調中調用,每次調用都會彈出授權提示窗,若用戶同意,則會返回用戶的真實數(shù)據。
    //獲取已登錄用戶的基本信息或特殊信息,首次使用的用戶會彈出授權提示窗,若用戶同意,則會返回用戶的真實數(shù)據。
    tt.getUserInfo({
      success(res) {
        console.log("getUserInfo 調用成功", JSON.stringify(res));
      },
      fail(res) {
        console.log("getUserInfo 調用失敗", JSON.stringify(res));
      },
     })

響應:

{
    "userInfo": {
        "nickName": "claxxxxxhen",
        "avatarUrl": "https://p9-passport.byteacctimg.com/img/mosaic-legacy/3796/2975xxx00.image",
        "gender": 0,
        "city": "",
        "province": "",
        "country": "",
        "language": "",
        "userId": "37431xxxxx1486",
        "sessionId": "3b652xxxxxxc3b490351ef1311"
    },
    "rawData": "{\"nickName\":\"claixxxxn\",\"avatarUrl\":\"https://p9-passport.byteacctimg.com/img/mosaic-legacy/3796/297xxxx.image\",\"gender\":0,\"city\":\"\",\"province\":\"\",\"country\":\"\",\"language\":\"\"}",
    "signature": "5fed6c636f3cdxxxxx3d2e97e0869d0",
    "encryptedData": "G+kEtB+JE2S3/r8V0Ftxxxx/CxxxxxxxxxxxxxFKKLp6LNpm3QtoHlj2BZREiN8zSE8z7gK51ECsKFDyPn4mtuthY90zj+Zwx0EPyC+DwP1ZJ4ahVawzVkMdnBMhnT48+7CZvOAWa/LyY93MmSsDNLDR0BBTpBnYbnqSW3tGNvTcllNuX2F1Laso2RtsFQlQPoVvoBysfIxliFDvL2+Rw/ZEIc2i7uXnbDeTzPuiiC8km7a/ImZSEZiTdsGNDKEnepmYStswydENgG51NiPRwj15JyOAeALb34xhgYFFZGZFw703XGUbXIn8s8tbqJ+u72cjbqxTp/D7qBL2cHA3uJC6rhrM/VgH7hiDMlwApdRQuFcNQSItQ41RhcD14R7iFoQObc4/IPT0BmvG+WuKMV+PuEp8vaA==",
    "iv": "ar8P0OkTQxxxxqHrW9w==",
    "errMsg": "getUserProfile:ok"
}
  • 其中encryptedData是需要的用戶openId等數(shù)據
  • iv是用于解密的,需要留存

Q:此外,什么是用戶的openId?什么是用戶的unionId?
A:開發(fā)者可通過OpenID來獲取用戶基本信息。特別需要注意的是,如果開發(fā)者擁有多個移動應用、網站應用和公眾帳號,可通過獲取用戶基本信息中的unionid來區(qū)分用戶的唯一性。也就是說,小程序內openId是唯一的,全平臺unionId是唯一的。

2.前端-用戶登錄

API文檔:https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/api/open-interface/log-in/tt-login

tt.login({
  force: true,
  success(res) {
    console.log(`login 調用成功${res.code} ${res.anonymousCode}`);
  },
  fail(res) {
    console.log(`login 調用失敗`);
  },
});

響應:

{
  "anonymousCode": "UAx9YfgVDsxxxxxxxxxxiZCXh7OaAfiW8ei…6mhQP1ETXRfFRKxidnPqMxZtxgXv7yrbWjkBwVePN6FIJq-1Q",
  "code": "1ujmWYVW0mlU4xzzzzzzxxxxxxxxMUkdf9Vp1…g9z0Gy8LFbNekfVjY-Ng6V4_Bc6HxAPQ-SQvrPS8Gf-1ZFvaE",
  "isLogin": true,
  "errMsg": "login:ok"
}

tt.login調用douyin接口登錄,獲取code/anonymous_code,這兩個字段是后續(xù)個人加密信息解密的重要字段

3.服務端-jscode2session換取sessionKey

API文檔:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/server/log-in/code-2-session/

        Map<String, String> dataMap = new HashMap<>();
        dataMap.put("appid", "tt60d416xxxxc8801");
        dataMap.put("secret", "582830exxxxc99e14c0999a");
        dataMap.put("code", "3muFdjQoIFZw0WcBLhltspBxxxxxNfT6mkCQO4RbKicdR0j7a12-PRO6yRCHn90HYDg8DerKt_lxoVr1Donbw");
        dataMap.put("anonymous_code", "i8MsKM6tGuKzjxMH3vJF3R4NxAN6xxxxxxxx38wsHAcfmY4dXwaWInvy6isFJ5X8ejQzKcYJVgiPCPkBkMwkw4MrRjFY_iVDOcTOY74");
        HttpResult httpResult = HttpClientUtils.doPostJson("https://developer.toutiao.com/api/apps/v2/jscode2session", JSON.toJSONString(dataMap));//注意這是生產的地址
        String res = httpResult.getBody();
        System.out.println(res);

響應:

{
  "err_no": 0,
  "err_tips": "success",
  "data": {
    "session_key": "hZy6t19VPjFqm********",
    "openid": "V3WvSshYq9******",
    "anonymous_openid": "",
    "unionid": "f7510d9ab***********"
  }
}
  • 這個時候能夠獲取session_key(解密用戶信息的重點字段),此外還有重要的用戶openid和unionid

4.服務端-敏感信息解密

API文檔:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/user-information/sensitive-data-process/
這邊測試解密用戶信息,此外手機號等encryptData的數(shù)據,都可以拿這套流程來解密。
我這邊主要寫了java后端解密的方法,對于js也可以解密,官方文檔有比較多的方法展示。

  Base64.Decoder decoder = Base64.getDecoder();
        byte[] sessionKeyBytes = decoder.decode("Ps2xsxxxxxxxJkA==");
        byte[] ivBytes = decoder.decode("ar8P0OxxxxxxqHrW9w==");
        byte[] encryptedBytes =             decoder.decode("cfOy32OwcBaZv7xxxxxxxxxxxvZQHOjzDABhBOWInm0PNGwzXIBkUIZmto2pjC8VDmZS3v3N27OCb2c5E7DblfSVbcjXHuZN7OPB+zOxDADD7Q==");
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        SecretKeySpec skeySpec = new SecretKeySpec(sessionKeyBytes, "AES");
        IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
        cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivSpec);
        byte[] ret = cipher.doFinal(encryptedBytes);
        String res = new String(ret);
        System.out.println(res);
  • 注意:Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding”); // JDK does not support PKCS7Padding, use PKCS5Padding instead
  • 以上會有一個坑,對于JDK版本的不同,對解密的key的長度會有限制。比如Illegal key size or default parameters這種錯誤。因為美國的出口限制,Sun通過權限文件(local_policy.jar、US_export_policy.jar)做了相應限制。因此存在一些問題:●密鑰長度上不能滿足需求(如:java.security.InvalidKeyException: Illegal key size or default parameters),然后網上說要通過替換JDK/jre/lib/security的local_policy.jar
  • 我們正好遇到了服務器上的JDK版本較老,本地的JDK比較新,而上線報錯這樣的問題,下面的方法親測解決異常
  • 關于JDK如何啟用無限強度加密:
    • 針對Java 8u151之前版本,內含有限強度策略文件,我們下載 oracle上的無限制版本替換local_policy.jar、US_export_policy.jar
    • 針對Java 8u151之后版本,默認采用無限強度策略文件,如果我們想定義要使用的版本,有一個安全屬性crypto.policy。Security.setProperty(“crypto.policy”,“unlimited”).在JCE框架初始化之前設置該屬性。

5.再看看敏感數(shù)據解密流程

  1. tt.login調用douyin接口登錄,獲取code/anonymous_code
  2. getUserProfile,獲取iv、encryptedData
  3. jscode2session 獲取session_key (前后端獲取均可)
  4. 解密用戶信息 (前后端解密均可),注意保存用戶信息

這樣就能夠獲取openid\unionid\用戶明文信息了

6.前端-獲取用戶設備信息

tt.getSystemInfo({
     success(res) {
       console.log("getSystemInfo 調用成功", JSON.stringify(res));
     },
     fail(res) {
       console.log("getSystemInfo 調用失敗", JSON.stringify(res));
     },
   });

響應:


  "language": "zh_CN",
  "version": "6.6.3",
  "brand": "devtools",
  "fontSizeSetting": 16,
  "platform": "devtools",
  "battery": 100,
  "wifiSignal": 4,
  "appName": "devtools",
  "statusBarHeight": 47,
  "nativeSDKVersion": "10.3.0",
  "model": "iPhone 12",
  "system": "iOS 14",
  "deviceScore": {
    "cpu": 7.905,
    "gpu": 9.0622,
    "memory": 7.0344,
    "overall": 7.9524
  },
  "SDKVersion": "2.68.0",
  "pixelRatio": 3,
  "screenWidth": 390,
  "screenHeight": 844,
  "windowWidth": 390,
  "windowHeight": 844,
  "safeArea": {
    "left": 0,
    "right": 390,
    "top": 47,
    "bottom": 810,
    "width": 390,
    "height": 763
  },
  "SDKUpdateVersion": "2.68.0.3",
  "devicePixelRatio": 3,
  "errMsg": "getSystemInfo:ok"
}

7.前端-獲取用戶手機號

獲取抖音API當前登錄狀態(tài)的手機號,獲取前需用戶授權,否則無法獲取。注意:該能力無法直接使用,需申請白名單

小程序獲取手機號授權能力僅適用于以下場景:網絡購物、帳號下信息內容同步、票務預訂、業(yè)務辦理、信息查詢(如:社保、公積金)、預約等,其他不符合使用規(guī)范的申請不予開通,申請可參考: 獲取用戶手機號開通指南

評級達 B 級,且信用分達到 90 分的企業(yè)主體小程序,可以申請獲取用戶手機號能力

tt.getPhoneNumber({
      success(res) {
        console.log("getPhoneNumber 調用成功", JSON.stringify(res));
      },
      fail(res) {
        console.log("getPhoneNumber 調用失敗", JSON.stringify(res));
      },
     })

響應:

{
  "detail": {
    "cloudId": "",
    "encryptedData": "0tJ8EV5kwMq8xxxxxxQmf1KG2yKVJX3pYMgWbnY4SJ0MmWMFHJx1ySIaWIgt09sMCL0vAPmgMQ8Hv6d9NgRksOYDTdO1JEmJMy4VGJpBUKL3qqcOvBIc6ToN3RyUTad6Q==",
    "iv": "ZtZtYvS7gNbGMpyYg500rA==",
    "errMsg": "getPhoneNumber:ok"
  },
  "errMsg": "getPhoneNumber:ok"
}

這個數(shù)據就一樣解密即可

8.前端-獲取用戶精準位置信息

用于頻繁請求地理位置,實時獲取精確位置信息。一般適用于打車、外賣等需要頻繁請求獲取地理位置的行業(yè)。需要申請后可查看。

tt.chooseAddress({
     success(res) {
       console.log("chooseAddress 調用成功", JSON.stringify(res));
     },
     fail(res) {
       console.log("chooseAddress 調用失敗", JSON.stringify(res));
     },
    })

只要有接口權限,并且是用戶登錄授權狀態(tài),即可獲取
響應:

{
  "longitude": 116.3974,
  "latitude": 39.9092,
  "city": "北京市",
  "speed": 0,
  "accuracy": 65,
  "altitude": 0,
  "verticalAccuracy": 65,
  "horizontalAccuracy": 65,
  "errMsg": "getLocation:ok"
}

9.前端-消息訂閱

前端發(fā)起用戶訂閱訂單消息通知,用戶同意后,即可通過接口發(fā)送實時訂單消息給用戶,提升用戶體驗

小程序消息訂閱能力說明

注意:沙盒內測試僅支持安卓,如綁定的設備是IOS的測試會報錯 — {"errMsg":"requestSubscribeMessage:fail not supported by current application","errNo":21502}

 tt.requestSubscribeMessage({
      tmplIds: [], // 需要填入開放平臺申請的模版id,支持最多3個同類型模版
      success(res) {
        //訂閱成功
        console.log("訂閱成功", res);
      },
      fail(error) {
        //訂閱失敗
        console.log("訂閱失敗, 錯誤詳情: ", error);
        tt.showToast({
          title: "訂閱失敗",
          icon: "fail",
        });
      },
      complete(res) {
        //訂閱完成
        console.log("tt.requestSubscribeMessage API調用完成: ", res);
      },
    });

如果是安卓設備,請求結果如下:

{
  "MSG137673105551c58exxxxx15858": "accept",
  "itemSettings": {
    "MSG137673105551cxxxxxbf15858": "accept"
  },
  "errMsg": "requestSubscribeMessage:ok"
}

10.服務端-獲取AccessToken

AccessToken是接口鑒權憑證
access_token 是小程序的全局唯一調用憑據,開發(fā)者調用小程序支付時需要使用 access_token。access_token 的有效期為 2 個小時,需要定時刷新 access_token,重復獲取會導致之前一次獲取的 access_token 的有效期縮短為 5 分鐘。

接口:POST https://developer.toutiao.com/api/apps/v2/token
請求示例:

curl --location --request POST 'https://developer.toutiao.com/api/apps/v2/token' \
--header 'Content-Type: application/json' \
--data-raw '{
  "appid": "ttabc*****",
  "secret": "d428***********",
  "grant_type": "client_credential"
}'

響應:

{
  "err_no": 0,
  "err_tips": "success",
  "data": {
    "access_token": "0801121***********",
    "expires_in": 7200
  }
}

11.服務端-發(fā)送訂閱消息

請求地址: POST https://developer.toutiao.com/api/apps/subscribe_notification/developer/v1/notify
POSTMAN中的請求示例

curl --location --request POST 'https://developer.toutiao.com/api/apps/subscribe_notification/developer/v1/notify' \
--header 'Content-Type: application/json' \
--data-raw '{
  "access_token": "080112184679zzzz7556f426d33673d3d",
  "app_id": "tt60d4166zzzzzzz8801",
  "tpl_id": "MSG137673105zzzzzz7c84bf15858",
  "open_id": "_000S3uzzzzzzzzAzN_zZb",
  "data": {
    "快遞派送": "SF1111111111"
  }
}'

響應:文章來源地址http://www.zghlxwxcb.cn/news/detail-778281.html

{
    "err_no": 0,
    "err_tips": ""
}

到了這里,關于抖音小程序實踐三:接口開發(fā)指南的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 抖音小程序開發(fā)教學系列(4)- 抖音小程序組件開發(fā)

    在本章中,我們將深入探討抖音小程序的組件開發(fā)。組件是抖音小程序中的基本構建塊,它們負責展示數(shù)據和與用戶交互。了解組件的開發(fā)方法和使用技巧是進行抖音小程序開發(fā)的重要一步。 抖音小程序提供了許多常用的基本組件,它們分別具有不同的功能和用途。在我們的

    2024年02月09日
    瀏覽(87)
  • 抖音小程序支付開發(fā)流程和實現(xiàn)

    抖音小程序支付開發(fā)流程和實現(xiàn)

    第一步:在字節(jié)小程序開發(fā)者平臺注冊賬號 第二步:創(chuàng)建應用完善資料 第三步:在功能管理--支付 中申請相對應的擔保支付(微信,支付寶,抖音支付) 還需要后端同學配一下這個 這步完成了就到代碼開發(fā)環(huán)節(jié)了 第四步 按照開發(fā)文檔開發(fā) 開發(fā)文檔地址:https://microapp.byt

    2024年02月13日
    瀏覽(18)
  • 抖音seo矩陣系統(tǒng)源碼開發(fā)部署|抖音小程序接入(一)

    抖音seo矩陣系統(tǒng)源碼開發(fā)部署|抖音小程序接入(一)

    (1)申請開放平臺服務商 (2)申請開放平臺網站應用 (3)申請開放平臺應用權限 (4)提交各個API接口申請文檔 (5)審核通過技術開發(fā)部署接入 抖音SEO源碼是指抖音視頻的優(yōu)化代碼。這些代碼能夠優(yōu)化視頻在搜索引擎上的排名,從而讓更多的人看到你的視頻。抖音SEO源碼

    2024年02月12日
    瀏覽(24)
  • 抖音小程序AI一鍵換臉開發(fā)

    抖音小程序AI一鍵換臉開發(fā)

    ? ? 抖音小程序AI一鍵換臉產品是一種基于人工智能技術開發(fā)的應用,可讓用戶輕松地將自己的面部特征與其他人或角色進行互換,從而實現(xiàn)快速有趣的視覺效果。 ? ? 該產品具有以下特點: ? ? 一鍵操作:只需要點擊一下按鈕,即可完成自動換臉,無需任何復雜的操作步驟

    2024年02月16日
    瀏覽(20)
  • 短視頻seo矩陣+抖音小程序SaaS源碼開發(fā)部署

    短視頻seo矩陣+抖音小程序SaaS源碼開發(fā)部署

    小程序開發(fā)主要指在 IDE 中編寫代碼,包含前端開發(fā)和后端開發(fā)兩部分。開發(fā)流程可以參考快速開發(fā)小程序。 ?1.前提條件 已完成開發(fā)準備。 已了解小程序的運行時、目錄結構、代碼構成。 前端開發(fā) 根據實際場景和需求,選擇框架、組件、API,在 IDE 中完成小程序的前端開發(fā)

    2024年02月11日
    瀏覽(27)
  • 最新小程序源碼(微信/抖音小程序源碼和小程序游戲源碼開發(fā))

    最新小程序源碼(微信/抖音小程序源碼和小程序游戲源碼開發(fā))

    本文將利用小程序游戲提供的能力制作一個簡單的方塊旋轉小程序游戲,旨在從零開始介紹小程序游戲的開發(fā)過程。 注冊小程序游戲賬號 進入小程序注冊頁面按照指引填寫信息并提交相應信息,服務類別選擇“程序游戲”,子類別可以先選擇“休閑程序游戲”,您可以擁有

    2024年02月05日
    瀏覽(21)
  • 短視頻seo矩陣+抖音小程序源碼開發(fā)解決方案(一)

    短視頻seo矩陣+抖音小程序源碼開發(fā)解決方案(一)

    該解決方案主要針對產品用戶交易決策周期長/非標定制等情況的企業(yè),如:房產、汽車、金融、咨詢服務,廣告設計、網絡科技公司,TOB類銷售行業(yè)等。 基于不同的經營場景,解決方案全面更新,新增賬號管理,視頻剪輯,視頻分發(fā),小程序創(chuàng)建,小程序掛載,線索收集,

    2024年02月14日
    瀏覽(24)
  • Java測試驅動開發(fā)實踐指南

    Java測試驅動開發(fā)(TDD)是一種軟件開發(fā)方法,它集成了測試和開發(fā)的操作,通過一組簡單有效的流程來確保代碼的質量和正確性。TDD可以在項目初期幫助開發(fā)者明確需求和功能,并且在整個開發(fā)過程中對代碼進行快速、自動化的測試,最終可以自動化發(fā)現(xiàn)問題和修復問題。本

    2024年02月02日
    瀏覽(16)
  • 前端桌面應用開發(fā)實踐:Electron入門指南

    隨著互聯(lián)網的快速發(fā)展,前端開發(fā)不再局限于網頁應用,而是逐漸涉及到桌面應用的開發(fā)。Electron作為一種流行的前端桌面應用開發(fā)框架,為開發(fā)者提供了一種快速構建跨平臺桌面應用的方式。本文將介紹Electron的基本概念和使用方法,并通過一個簡單的示例來說明其開發(fā)實踐

    2024年02月11日
    瀏覽(30)
  • 開發(fā)一個Android應用:從零到一的實踐指南

    在這篇博文中,我們將逐步探討如何從頭開始構建一個Android應用。我們將從最基本的環(huán)境搭建開始,然后深入討論組件、布局和其他核心概念。在完成整個過程后,你將會掌握一個簡單但完整的Android應用開發(fā)流程。讓我們開始吧! 準備開發(fā)環(huán)境 創(chuàng)建項目 理解項目結構 設計

    2024年02月08日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包