微信小程序拉起功能:通过后台接口推送命令到微信客户端
微信小程序拉起功能:通过后台接口推送命令到微信客户端
该函数通过后台接口推送命令到微信客户端,微信客户端拉起对应的liteapp。
函数功能:
通过后台接口推送命令到微信客户端,微信客户端拉起对应的liteapp。
参数说明:
session_key: 用户的 session_key,用于验证用户身份app_id: 微信小程序的 app_iduin: 微信 UIN,对应一个微信号query: 查询参数,以字典形式传递path: 路径,用于指定小程序页面env: 环境,可选参数,默认值为 'rdm',表示研发环境
返回结果:
True: 拉起小程序成功False: 拉起小程序失败
示例代码:
import requests
import urllib
def launch_app(session_key, app_id, uin, query=None, path=None, env='rdm'):
'通过后台接口推送命令到微信客户端,微信客户端拉起对应的liteapp'
params = {'sessionKey': session_key, 'appId': app_id, 'uin': uin, 'env': env}
if path:
entry = path
if query:
entry += '?' + urllib.parse.urlencode(query)
params['entry'] = entry
logger.error('%s', params)
res = requests.get(g_url, params=params, verify=False)
if res.status_code == 200 and res.json()['errCode'] == 0:
return True
else:
logger.error('%s, %s, %s', res.url, res.status_code, res.text)
return False
Golang 实现:
import (
"fmt"
"net/http"
"net/url"
"encoding/json"
)
func launchApp(sessionKey, appId, uin, path string, query url.Values, env string) (bool, error) {
params := url.Values{}
params.Set("sessionKey", sessionKey)
params.Set("appId", appId)
params.Set("uin", uin)
params.Set("env", env)
if path != "" {
params.Set("entry", path)
if len(query) > 0 {
params.Set("entry", fmt.Sprintf("%s?%s", path, query.Encode()))
}
}
resp, err := http.Get(fmt.Sprintf("%s?%s", g_url, params.Encode()))
if err != nil {
return false, err
}
defer resp.Body.Close()
var data map[string]interface{}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
return false, err
}
if resp.StatusCode == http.StatusOK && data["errCode"] == 0 {
return true, nil
}
return false, fmt.Errorf("拉起小程序失败: %s, %s, %s", resp.URL, resp.StatusCode, data)
}
原文地址: https://www.cveoy.top/t/topic/oieK 著作权归作者所有。请勿转载和采集!