中文字幕无码专区一VA亚洲V专区在线 ,日韩AV午夜在线观看,无码三级AV电影在线观看,全部孕妇毛片

18221533805
在公眾號中使用云開發(fā)
上海微信小程序開發(fā)制作、APP、網(wǎng)站、小程序定制、小程序外包開發(fā)公司

在公眾號中使用云開發(fā)

2022-05-08

在公眾號中使用云開發(fā)

微信云開發(fā)已支持在Web 網(wǎng)頁中使用環(huán)境共享,即一個小程序的云開發(fā)資源可以授權共享給同主體下多個公眾號(或公眾號授權的web網(wǎng)頁)使用。

同一主體下的某個已開通云開發(fā)的小程序授權共享環(huán)境給該公眾號后,在該公眾號網(wǎng)頁中,則可以通過云開發(fā) Web SDK 的接口發(fā)起登錄(內(nèi)部會進行公眾號網(wǎng)頁授權),登錄后可以在云函數(shù)中獲取用戶信息、及使用公眾號的服務端接口。如果網(wǎng)頁沒有綁定公眾號或者不需要微信登錄態(tài),也可以直接使用 Web 未登錄模式訪問云開發(fā)資源。

注意:Web SDK 使用公眾號登錄態(tài),需要使用靜態(tài)網(wǎng)站托管綁定的默認域名或自定義域名(因自 iOS 14 起封禁第三方 cookie,在 Web SDK 中使用靜態(tài)托管域名私有鏈路訪問微信服務來保障安全及使用第一方 cookie),參考 第三方 Cookie 限制說明

在微信客戶端內(nèi)打開的 Web 網(wǎng)頁可以進行公眾號網(wǎng)頁授權并且有登錄態(tài)的安全訪問云開發(fā)資源。有以下步驟:

  1. 需要一個有網(wǎng)頁授權權限的公眾號 A、及一個同主體的已開通云開發(fā)的小程序 B

  2. 小程序 B 在云開發(fā)控制臺中通過 “環(huán)境共享” 能力,將一個或多個環(huán)境授權共享給公眾號 A 使用

  3. 公眾號 A 的網(wǎng)頁在微信客戶端內(nèi)使用云開發(fā) Web SDK 登錄,即可正常訪問小程序 A 已授權共享的云開發(fā)環(huán)境資源

整個流程涉及的接口少且簡單易用,詳細介紹如下:

步驟一:準備公眾號與小程序

公眾號準備:

  1. 公眾號需有使用網(wǎng)頁授權的權限

  2. 配置好網(wǎng)頁授權的回調(diào)域名

  3. 配置好 JS 安全域名

小程序準備:

  1. 開通云開發(fā)

  2. 前往云開發(fā)控制臺-更多-環(huán)境共享,開通環(huán)境共享

步驟二:小程序?qū)h(huán)境共享給公眾號使用

如果公眾號 A 和小程序 B 同主體,則小程序 B 可以在 1.03.2009140 或以上版本的開發(fā)者工具云開發(fā)控制臺的 “環(huán)境共享” 中,將其一個或多個環(huán)境的全部或部分資源能力授權給公眾號使用。授權完成后,公眾號網(wǎng)頁可以訪問小程序 B 的云開發(fā)資源的已授權部分。

步驟三:網(wǎng)頁登錄

在公眾號網(wǎng)頁中,可以使用云開發(fā) Web SDK 同時完成公眾號網(wǎng)頁授權和云開發(fā)登錄。使用 Web SDK 完成登錄流程也非常簡單,必要的僅有 checkLoginstartLogin 這兩個 API。必要的登錄流程如下:

  1. 云開發(fā)登錄:調(diào)用 checkLogin 檢查網(wǎng)頁云開發(fā)登錄狀態(tài),如果未登錄則調(diào)用 startLogin 發(fā)起調(diào)用,發(fā)起完成后重復該步驟;如果已登錄則進行下一步

  2. 獲取對應小程序的訪問授權:在代碼中使用一個小程序的一個環(huán)境的資源時,需初始化并獲取對方的授權,示例代碼如下:

// 初始化一個實例,聲明要使用哪個小程序哪個云環(huán)境的資源const c = new cloud.Cloud({
  appid: '公眾號 AppID',
  resourceAppid: '資源方小程序 AppID',
  resourceEnv: '資源方小程序云環(huán)境 ID',})// 初始化,等待授權關系校驗通過以及目標云環(huán)境的 cloudbase_auth 函數(shù)返回授權await c.init()

資源方 cloudbase_auth 函數(shù)簡易返回示例:

const cloud = require('wx-server-sdk')cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV})// 云函數(shù)入口函數(shù)exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  console.log(event)
  console.log(wxContext)
  // 跨賬號調(diào)用時,由此拿到來源方小程序/公眾號 AppID
  console.log(wxContext.FROM_APPID)
  // 跨賬號調(diào)用時,由此拿到來源方小程序/公眾號的用戶 OpenID
  console.log(wxContext.FROM_OPENID)
  // 跨賬號調(diào)用、且滿足 unionid 獲取條件時,由此拿到同主體下的用戶 UnionID
  console.log(wxContext.FROM_UNIONID)

  return {
    errCode: 0,
    errMsg: '',
    auth: JSON.stringify({
      // 自定義安全規(guī)則
      // 在前端訪問資源方數(shù)據(jù)庫、云函數(shù)等資源時,資源方可以通過
      // 安全規(guī)則的 `auth.custom` 字段獲取此對象的內(nèi)容做校驗,
      // 像這個示例就是資源方可以在安全規(guī)則中通過 `auth.custom.x` 獲取
      x: 1,
    }),
  }}

資源方 cloudbase_auth 云函數(shù)返回的對象結(jié)構(gòu)協(xié)議:

屬性類型默認值必填說明
errCodenumber
自定義錯誤碼,0 表示授權通過,非 0 表示拒絕授權,會透傳回給調(diào)用方
errMsgstring
自定義錯誤信息,errCode 非 0 時透傳回給調(diào)用方
authstring
安全規(guī)則對象,必須序列化成字符串

auth 字段額外說明:該字段用于自定義安全規(guī)則,當定義了之后,調(diào)用方在前端訪問資源方的數(shù)據(jù)庫、云函數(shù)等資源時,資源方可以通過安全規(guī)則的 auth.custom 字段獲取此對象的內(nèi)容做安全規(guī)則校驗。

步驟四:訪問資源及使用公眾號特有能力

登錄后,可以訪問獲得授權的小程序的云開發(fā)資源、使用公眾號 JSSDK、獲取公眾號用戶信息、發(fā)起公眾號云調(diào)用(免鑒權使用公眾號服務端接口)等。以下一一舉例說明。

1. 使用公眾號 JSSDK

使用公眾號 JSSDK 的時是需要進行 wx.config 并傳入簽名的,在完成云開發(fā)登錄之后,可以使用云開發(fā) Web SDK 提供的 getJSSDKSignature 方法完成獲取網(wǎng)頁 wx.config 所需簽名,示例:

const res = await cloud.getJSSDKSignature({
  url: '要簽名的網(wǎng)頁 URL'})wx.config({
  appId: '公眾號 AppID', // 必填,公眾號的唯一標識
  timestamp: res.timestamp + '', // 必填,生成簽名的時間戳
  nonceStr: res.nonceStr, // 必填,生成簽名的隨機串
  signature: res.signature,// 必填,簽名
  jsApiList: ['JS API 名'] // 必填,需要使用的JS接口列表})

2. 訪問微信云開發(fā)資源

使用 Web SDK 完成云開發(fā)登錄后,想要訪問某個小程序的云開發(fā)資源時,需聲明相應實例并等待初始化(對方授權)完成,等待完成后即可以相同的 API 訪問所有云資源:

// 聲明const c1 = new wx.cloud.Cloud({
  appid: '公眾號 AppID',
  resourceAppid: '資源方 AppID',
  resourceEnv: '資源方環(huán)境 ID',})// 等待初始化完成await c1.init()// 然后照常訪問指定環(huán)境下的資源c1.callFunction({
  name: '',
  data: {},}).then(console.log)

3. 獲取公眾號用戶信息

在公眾號網(wǎng)頁中發(fā)起云函數(shù)調(diào)用時,在云函數(shù)中可以通過 getWXContext 獲取得到公眾號的用戶信息和應用信息,具體字段有:

屬性類型說明
FROM_APPIDstring來源方 AppID,即公眾號 AppID
FROM_OPENIDstring來源方用戶 OpenID,即公眾號對應的用戶 OpenID
FROM_UNIONIDstring來源方用戶 UnionID
// 示例const cloud = require('wx-server-sdk')cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,})exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  // 跨賬號調(diào)用時,由此拿到來源方小程序/公眾號 AppID
  console.log(wxContext.FROM_APPID)
  // 跨賬號調(diào)用時,由此拿到來源方小程序/公眾號的用戶 OpenID
  console.log(wxContext.FROM_OPENID)
  // 跨賬號調(diào)用、且滿足 unionid 獲取條件時,由此拿到同主體下的用戶 UnionID
  console.log(wxContext.FROM_UNIONID)

  return wxContext}

4. 云調(diào)用:調(diào)用公眾號服務端接口

在公眾號網(wǎng)頁中發(fā)起云函數(shù)調(diào)用時,在云函數(shù)中可以免鑒權調(diào)用公眾號的服務端接口,示例:

const cloud = require('wx-server-sdk')cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,})// ...exports.main = async (event) => {
  // 示例:創(chuàng)建標簽 https://developers.weixin.qq.com/doc/offiaccount/User_Management/User_Tag_Management.html
  return cloud.openapi({ appid: '公眾號 AppID' }).officialAccount.tags.create({ 
    tag: { 
      name: 'xxx'
    }
  })}

已支持絕大部分接口,詳細 API 列表見[支持的服務端接口列表],如有缺失,請在微信開放社區(qū)反饋。

實際操作可參考公眾號網(wǎng)頁使用云開發(fā)的極簡示例

步驟五:登錄云開發(fā)控制查看云開發(fā)資源

首先,需要到公眾號后臺為登錄用戶授權開發(fā)者工具權限:

1.05.2103192 或以上版本的開發(fā)者工具已支持公眾號網(wǎng)頁登錄云開發(fā)控制臺,前往微信開發(fā)者工具-公眾號網(wǎng)頁項目-公眾號網(wǎng)頁,點擊“云開發(fā)”,填入公眾號AppID即可進入授權環(huán)境共享的微信云開發(fā)資源中;




在公眾號中使用云開發(fā) 希望這篇文章對您有幫助.

上海西陸信息科技有限公司 承接各類微信小程序開發(fā)制作、小程序定制、APP 網(wǎng)站 開發(fā)制作,聯(lián)系電話 18221533805、15900430334

為您推薦

模版和定制開發(fā)的區(qū)別?

心理傾聽咨詢系統(tǒng)

如果您這邊也想開發(fā)一個心理咨詢系統(tǒng)具備哪些功能模塊呢?

旅游小程序app開發(fā)

微信旅游小程序開發(fā),包含旅游景點展示、用戶在線預約、在線支付、景點核銷、會員管理系統(tǒng)等功能。

醫(yī)美行業(yè)方案報價

注冊登錄注冊登錄微信授權自動獲取用戶頭像、昵稱、手機號,并創(chuàng)建會員,下次進入自動登錄首頁布局1、ba...

多商戶電商系統(tǒng)哪些功能呢?

app/小程序運用具體有哪些支付途徑呢?1、在線支付:支持微信支付、支付寶支付、銀聯(lián)支付、銀行卡打款...

服裝定制類小程序開發(fā)

1,首頁顯示總交易金額,總交易訂單次數(shù)1.1對于需求方可看到自己發(fā)布的需求列表1.2對于接包方首先顯...

微信教育小程序app開發(fā),教育系統(tǒng)有哪些功能

微信教育小程序有哪些功能?下面給大家介紹下西陸教育系統(tǒng)功能清單一、用戶劃分1,普通用戶:可觀看免費課...

微信回收小程序開發(fā)公司、回收系統(tǒng)開發(fā)需求價格

分類功能模塊功能模塊功能描述策劃與設計界面設計需求溝通需求溝通UI設計前端設計反饋修改根據(jù)客戶的反饋...

微信黨建小程序開發(fā)需求、黨建小程序功能清單

分類功能模塊功能模塊功能描述策劃與設計界面設計需求溝通需求溝通UI設計前端設計反饋修改根據(jù)客戶的反饋...

美容會所小程序APP開發(fā)方案報價,醫(yī)美小程序需求

分類功能模塊功能模塊功能描述策劃與設計界面設計需求溝通需求溝通UI設計前端設計反饋修改根據(jù)客戶的反饋...

定制小程序 | 招聘小程序開發(fā)

求職者正在尋找公司,公司也在尋找求職者,而招聘小程序的開發(fā)是一種幫助公司與求職者溝通的招聘渠道,企業(yè)...

微信小程序開發(fā)需要多長時間

如今,小項目的發(fā)展越來越受歡迎,所以越來越多的企業(yè)和企業(yè)表示要開發(fā)自己的小項目。在開發(fā)前的溝通階段,...

小程序定制開發(fā)時間要多久?

很多人問我小程序定制開發(fā)需要多長時間?這個問題真的很難回答。我只能告訴你,根據(jù)項目開發(fā)一個小程序大約...

售貨機小程序APP功能清單,售貨機系統(tǒng)有哪些功能列表

售貨機小程序APP包含哪些基礎功能,一下西陸科技小編給大家總結(jié)下售貨機小程序基礎功能。 ...

上海小程序開發(fā)公司

上海徐匯哪里有靠譜的小程序開發(fā)公司?開發(fā)小程序你嘚先了解現(xiàn)在開發(fā)小程序的途徑有模板和定制開發(fā)模板和定...

微信美容美發(fā)小程序開發(fā)需要多少錢

美容行業(yè)是典型的O2O行業(yè),因此從網(wǎng)上到線下推廣的聯(lián)系對美容院來說是個問題。在應用小程序之前,美容院...

抖音小程序開發(fā)

抖音在這幾年時間里成為了一款很火爆APP,隨著抖音的火爆,抖音也開始慢慢模仿微信,百度,支付寶那樣推...

情侶攢錢app

情侶攢錢APP功能:快速記賬:極簡的操作流程,消費趨勢:一目了然的圖表,幫你快速分析消費情況數(shù)據(jù)安全...

家政服務預約小程序開發(fā)

很多人會問家政服務預約小程序APP怎么做,想要做一個家政系統(tǒng),首先我們得了解家政軟件包含哪些功能。家...

電商小程序APP開發(fā)功能清單

很多朋友會問 電商小程序到底有哪些常用功能,下面西陸小編根據(jù)自己多年的經(jīng)驗給大家總結(jié)了一些電商小程序...