動態

詳情 返回 返回

微信小程序用户隱私保護指引設置

協議完善

我們在小程序開發過程中或多或少會使用帶用户隱私API,比如獲取用户頭像、暱稱,用户手機號等等,這些API必須完善用户隱私指引才能正常調用,否者正式版本使用會報錯或者無法過審。

僅有在指引中聲明所處理的用户信息,才可以調用平台提供的對應接口或組件。若未聲明,對應接口或組件將直接禁用
完善的入口如下:


根據實際情況,勾選對應的選項,勾選完後進入界面完善對應隱私説明,這裏提供了一個片段供參考:

下面是對應的權限説明以及對應的隱私API

① 為了【保障你正常編輯個人信息等服務】,開發者將在獲取你的明示同意後,使用你的相冊(僅寫入)權限。
【wx.authorize({scope: 'scope.writePhotosAlbum'})、wx.saveImageToPhotosAlbum、wx.saveVideoToPhotosAlbum】

② 為了【保障你正常使用我們的服務,維護我們服務的正常運行,改進及優化我們的服務體驗以及保障你的帳號安全】,開發者將在獲取你的明示同意後,收集你的微信暱稱、頭像。
【<button open-type="chooseAvatar">、<input type="nickname">】

③ 開發者收集你的發票信息,用於【維護消費功能】。
【wx.chooseInvoiceTitle、wx.chooseInvoice】

④ 開發者收集你選中的照片或視頻信息,用於【發表評論、分享視頻】【用於分享和預覽圖片視頻】。
【wx.chooseImage、wx.chooseMedia、wx.chooseVideo】

⑤ 開發者使用你的通訊錄(僅寫入)權限,用於【獲取保存平台客服熱線】。
【wx.authorize({scope: 'scope.addPhoneContact'})、wx.addPhoneContact】

⑥ 開發者收集你的訂單信息,用於【方便獲取訂單信息】。

⑦ 開發者收集你的操作日誌,用於【運營維護】。

⑧ 開發者使用你的日曆(僅寫入)權限,用於【用户日曆日程提醒】。
【wx.authorize({scope: 'scope.addPhoneCalendar'})、wx.addPhoneRepeatCalendar、wx.addPhoneCalendar】

⑨ 開發者獲取你選擇的位置信息,用於【線下導航服務】。
【wx.choosePoi、wx.chooseLocation】

⑩ 開發者調用你的方向傳感器,用於【為用户提供更為智能和便捷的服務】。
【wx.startDeviceMotionListening】

⑪ 開發者調用你的方向傳感器,用於【識別判斷您的設備狀態】。
【wx.startDeviceMotionListening】

⑫ 開發者調用你的陀螺儀傳感器,用於【識別判斷您的設備狀態】。
【wx.startGyroscope】

⑬ 開發者調用你的加速傳感器,用於【識別判斷您的設備狀態】。
【wx.startAccelerometer】

⑭ 開發者收集你的郵箱,用於【在必要時和用户聯繫】。

⑮ 為了【用户互動】,開發者將在獲取你的明示同意後,收集你的車牌號。
【wx.chooseLicensePlate】

⑯ 為了【上傳圖片或者視頻】,開發者將在獲取你的明示同意後,訪問你的攝像頭。
【wx.authorize({scope: 'scope.camera'})、wx.createVKSession、<camera>、<live-pusher>、<voip-room>】

⑰ 為了【用户互動】,開發者將在獲取你的明示同意後,收集你的微信運動步數。
【wx.authorize({scope: 'scope.werun'})、wx.getWeRunData】

⑱ 為了【顯示距離】,開發者將在獲取你的明示同意後,收集你的位置信息。
【wx.authorize({scope:'scope.userLocation'})、wx.authorize({scope: 'scope.userLocationBackground'})、wx.authorize({scope: 'scope.userFuzzyLocation'})、wx.getLocation、wx.startLocationUpdate、wx.startLocationUpdateBackground、wx.getFuzzyLocation、MapContext.moveToLocation】

⑲ 開發者收集你的設備信息,用於【保障你正常使用網絡服務】。

⑳ 開發者收集你的發佈內容,用於【用户互動】。

㉑ 開發者收集你的地址,用於【獲取位置信息】。
【wx.chooseAddress】

㉒ 為了【通過語音與其他用户交流互動】 或 【需要使用麥克風進行語音錄製】,開發者將在獲取你的明示同意後,訪問你的麥克風。
【wx.authorize({scope: 'scope.record'})、wx.startRecord、RecorderManager.start、<live-pusher>、wx.joinVoIPChat】

㉓ 為了【登錄或者註冊】,開發者將在獲取你的明示同意後,收集你的手機號。
【<button open-type="getPhoneNumber">、<button open-type="getRealtimePhoneNumber">】

㉔ 開發者收集你的身份證號碼,用於【實名認證後才能繼續使用的相關網絡服務】。

㉕ 開發者收集你的所關注賬號,用於【用户互動】。

㉖ 開發者訪問你的藍牙,用於【設備連接】。
【wx.authorize({scope: 'scope.bluetooth'})、wx.openBluetoothAdapter、wx.createBLEPeripheralServer】

㉗ 開發者收集你選中的文件,用於【提前上傳減少上傳時間】。
【wx.chooseMessageFile】

㉘ 開發者調用你的磁場傳感器,用於【識別判斷您的設備狀態】。
【wx.startCompass】

㉙ 開發者讀取你的剪切板,用於【複製文本等相關信息】。
【wx.setClipboardData、wx.getClipboardData】




完善之後提交協議,等待微信審核即可。

隱私協議開發指南

涉及處理用户個人信息的小程序開發者,需通過彈窗等明顯方式提示用户閲讀隱私政策等收集使用規則
我們可以在彈出隱私協議前調用wx.getPrivacySetting判斷用户是否授權隱私了,如果授權則無需彈窗也可調用隱私API,詳情可查看文檔:主動查詢隱私授權同步狀態以及展示隱私協議

本地調試步驟
1、微信開發者工具調試,點擊手機小圖標

應用設置裏可以配置授權,但是貌似沒什麼用,我自己測試沒效果,真機預覽也一樣

2、uniapp中配置或微信小程序配置
manifest.json文件

原生微信小程序在app.json裏配置
    /* 小程序特有相關 */
    "mp-weixin" : {
        "appid" : "wx5b461fea4b8f5f5d",
            "__usePrivacyCheck__" : true, // 啓用隱私API校驗
    },

開啓了"__usePrivacyCheck__" : true微信後台對應的隱私權限API必須申請通過,否則無法調用

根據目前的實踐來看,無需在進入小程序的時候彈窗,因為這個彈窗只需要授權一次就可以了,所以我們只需要在小程序里正常發請求,如果token授權失敗則跳登錄頁,在登錄頁裏彈出授權彈窗,用户確定後才能進下一步,拒絕則彈窗二次提醒,依舊拒絕則退出小程序。確認授權後彈窗關閉,此時授權信息會緩存,後續都不會彈出了,彈窗關閉後點擊一鍵登錄正常登錄即可,流程如下圖所示:

需要注意,我們申請的用户隱私API只是針對API層面的,當你授權後,調用uni.chooseMedia這種API是可以直接通過的,但是當你需要硬件交互時,比如用户授權錄音,這個是設備相關的,還是會彈出授權彈窗,如圖:

該授權彈窗僅針對當前設備的功能做説明,而且是微信自帶的彈窗,無需配置。
你可以在調用錄音的位置做一個try...catch,如果拒絕,則走catch,此時會提示errMsg: authorize:fail auth deny,你根據提示信息判斷是否提示用户'您已拒絕我們的隱私協議,部分功能將不可用'即可,另外,err.errno == 112則是隱私協議未更新API不可用。在所有涉及到隱私API的地方都應該做這種錯誤提示的兼容。

const errFeedback = (err) => {
    if (err.errno == 112) {
        return uni.showToast({
            title: '隱私協議未更新,部分功能將不可用',
            icon: 'none',
            duration: 1000
        });
    }
    if (err.errMsg.includes('authorize:fail')) {
        return uni.showToast({
            title: '您已拒絕我們的隱私協議,部分功能將不可用',
            icon: 'none',
            duration: 1000
        });
    }
}

手機號獲取

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>

獲取手機號的功能只有企業賬號才可以使用,在配置獲取手機號的隱私協議後,需要等一段時間才會生效。

配置完之後,還需要完成微信認證,否則會提示:errMsg: "getPhoneNumber:fail no permission"



參考:獲取用户手機號接口,提示:getPhoneNumber:fail no permission
手機號驗證組件,免費使用1000次,之後每次0.03


參考文檔:
用户隱私保護指引填寫説明
小程序用户隱私保護指引內容介紹
wx.getPrivacySetting(Object object)
主動查詢隱私授權同步狀態以及展示隱私協議
Errno錯誤碼
fail api scope is not declared in the privacy agreement

user avatar
0 用戶, 點贊了這篇動態!

發表 評論

Some HTML is okay.