参照してアプレットコード生成プロセス
1は、クラウド機能に二次元コードを生成するために必要なアプレットクライアントのアップロードパラメータ
2、及びクラウドAPPID appsecret要求機能は、access_tokenは使用
。3、クラウドaccess_tokenはを+アプレット関数は、2つの次元を生成するクライアントのアップロードパラメータを使用しますコード
4、生成された2Dクラウド機能コードがピック側アプレットファイルIDのために、アプレットの終わりに戻す(またはデータベースファイルIDに戻され、その後、データベースを検索するために生成され、データベースの生成動作を繰り返し小さな防ぐ発生、再び実行されませんプログラムコードファイル)
アプレットクライアントアップロードアプレットコードパラメータ必要
wx.cloud.callFunction({
名:「のgetImage」、//関数名のクラウド
データ:{//アプレットコードパラメータに必要な
ページ:「ページ/ XXXX / XXXX 」 、
ID:ID、
}、
完了:RES => {
にconsole.log( 'CallFunction試験結果:'、RES)
this.setData({//取得戻るアプレットコード
xcxCodeImageData:res.result、
})
}
})
APPID appsecret access_tokenは要求と雲と機能
のクラウド機能のgetImageを作成するために、クラウドディレクトリインポート要求、要求、約束、axiosフレーム(データの要求)に対応する機能、
NPMは、インストール--save //リクエスト要求フレーム
NPMがインストール-リクエスト-約束//要求フレーム約束スタイルの保存
NPM --save axios //要求データフレームをインストールして、データ型を、フローはstream` `に戻すことができます
#注:インストールには、私と略記することができ、効果を保存package.jsonライブラリに追加することで
、クラウドファイルインポート機能フレームの
インクルードは、クラウド=(「WX-サーバー-SDK」)必要がconstとして
のconst = Axios必要(「Axios」)
VARを=(「要求約束」)RPを必要と
CONSTザは、FS =(「FS」)を必要とする。
VAR =ストリームを必要とする(「ストリーム」);
#は、実際の実際の使用に応じて、以下のような適切な導入、導入することが全てである必要はない
access_tokenは取得要求
//を要求フレームスタイル約束の
RP( 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=secret=appSecret'
.then(機能(resultValue){
はconsole.log( "要求成功:" )
にconsole.log(JSON.parse(resultValue))
})
.catch(関数(ERR){});
});
// Nodejs原生写法
のconstのhttp =が必要です( "HTTPS")
のconst URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=secret=appSecret"
http.get(URL、 (RES)=> {
VARのresultValue = ""
res.on( "データ"(データ)=> {
resultValue + =データ
})
res.on( "終了"、()=> {
にconsole.log(resultValue)
} )
})( "エラー"、(E)=> {上。
はconsole.log( `获取数据失败:$ {} e.message`)
})
获取小程序码
するvarオプション= {
方法: 'POST'、
URL : 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + access_tokenは」、
ボディ:{
ページ: "ページ/ XXX / XXX
シーン: "ID = XXX"
}、
JSON:trueに
};
RP(オプション)
.then(関数(parsedBody){
にconsole.log(parsedBody)//アプレットコード画像データ
})
.catch(関数(ERR){});
サーバ完全なコード
VaRのRP =( '要求-約束')を必要とする
CONSTザは、FS =( 'FS')を必要とする。
VAR =ストリームを必要とする( 'ストリーム')。
//请求微信access_tokenは
RP( 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=secret')
.then(機能(resultValue){
はconsole.log( "请求成功:」+ resultValue)
はconsole.log(JSON.parse(resultValue).access_token)
//请求小程序码
VARのhttp =( "HTTP")が必要です、
データ= {
//小程序码参数
"ページ": "ページ/ CardDetail / CardDetail"、
"幅":300、
"シーン":「ID = W6MIjlJhFW5Pec-Y」、
};
データ= JSON.stringify(データ)。
VARオプション= {
方法: "POST"、
ホスト: "api.weixin.qq.com"、
パス"/?WXA / getwxacodeunlimit access_tokenは=" + JSON.parse(resultValue).access_token、
ヘッダー:{
「コンテンツタイプ「: "アプリケーション/ JSON"、
"コンテンツ長":data.length
}
}。
VaRのREQ = http.request(オプション、
関数(RES){ res.setEncoding( "バイナリ")。
VAR imgData = '';
res.on( 'データ'、関数(チャンク){
imgDataチャンク+ =;
});
res.on( "終了"、関数(){
画像データが所望uploadFileメソッドパラメータファイル含むFileContentに変換され戻す//ストリーム形式、およびローカル通常の出力データは、この方法を有する2つの使用方法アプレットコードを実行しようとuploadFile取得することができる
VARをbufferStream新しい新しいstream.PassThrough =();
bufferStream.end(新しい新しいバッファ(imgData));
コンソール。ログ(「要求流量プロファイルuploadFile方式含むFileContent ----」)
はconsole.log(bufferStream)
テキストに//崇高出力をローカルで実行することができ、二次元コード開くこと
//ローカルストレージパス
VARパス=「公開。/ '+ Date.now()+' PNG「;
fs.writeFile(パス、imgData、 "バイナリ"、関数(ERR){
(ERR IF){
にconsole.log( "ダウン)「失敗;
}
console.log( "ダウン成功");
});
});
});
req.write(データ);
req.end();
})
.catch(関数(ERR){});
サーバ2つの完全なコード(直接使用することができるペースト)
constが必要クラウド( 'WX-サーバーSDK')=
CONST = Axios必要とする( 'Axiosを')
;必要RP =( '要求-約束')VAR
cloud.init()
//云函数入口函数
exports.main =非同期(イベント、コンテキスト)=> {
にconsole.log(イベント)
試す{
CONST resultValueは= https://api.weixin.qq.com/cgi-bin/ '(RPを待ちます?トークンgrant_type = client_credential&APPID = APPID&秘密=秘密')
constのトークン= JSON.parse(resultValue).access_token。
console.log( '------ TOKEN:'、トークン)。
CONST応答は=({axiosを待つ
'ポスト':方法
URL: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit'、
responseType: 'ストリーム'、
paramsは:{
access_tokenは:トークン、
}、
データ。 {
ページ:event.page、
幅:300、
シーン: "ID =" + event.id、
}
})。
awaitリターンcloud.uploadFile({
cloudPath 'xcxcodeimages /' + Date.now()+ '.pngを'
含むFileContent:response.data、
});
}キャッチ(ERR){
にconsole.log(「>>>>> > ERROR:」、ERR)
}
}
要求フレーム関連文書:HTTPS://www.npmjs.com/package/request
要求フレームの約束のスタイル関連文書:HTTPS://www.npmjs.com/package/request-promise
Axiosフレームワーク関連書類ます。https://www.npmjs.com/package/axios
アプレットクラウド開発文書:HTTPS://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html
- -------------------
著者:技術のブログStevinの
ソース:CSDNの
元ます。https://blog.csdn.net/feng2qing/article/details/82914505
著作権:この記事では、ブロガーのオリジナルの記事、再現され、ボーエンのリンクを添付してください!