UNPKG

@tnwx2/opencp

Version:

TTNWX 微信系开发脚手架之企业微信开放平台

204 lines 10.7 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const util = require("util"); const kits_1 = require("@tnwx2/kits"); const accesstoken_1 = require("@tnwx2/accesstoken"); /** * @author Javen * @copyright javendev@126.com * @description 企业微信开发平台 API */ class OpenCpApi { /** * 获取预授权码 */ static getPreAuthCode(apiConfig) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.SUITE_TOKEN); let url = util.format(this.getPreAuthCodeUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpGet(url); }); } /** * 设置授权配置 * @param preAuthCode 预授权码 * @param authType 授权类型:0 正式授权, 1 测试授权。 默认值为0。注意,请确保应用在正式发布后的授权类型为“正式授权” * @param appId 允许进行授权的应用id,如1、2、3,不填或者填空数组都表示允许授权套件内所有应用(仅旧的多应用套件可传此参数,新开发者可忽略) */ static setSessionInfo(apiConfig, preAuthCode, authType = 0, appId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.SUITE_TOKEN); let url = util.format(this.setSessionInfoUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ pre_auth_code: preAuthCode, session_info: { appid: appId, auth_type: authType } })); }); } /** * 获取企业永久授权码 * @param authCode 临时授权码 */ static getPermanentCode(apiConfig, authCode) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.SUITE_TOKEN); let url = util.format(this.getPermanentCodeUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_code: authCode })); }); } /** * 获取企业授权信息 * @param authCorpId 授权方corpid * @param permanentCode 永久授权码 */ static getAuthInfo(apiConfig, authCorpId, permanentCode) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.SUITE_TOKEN); let url = util.format(this.getAuthInfoUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_corpid: authCorpId, permanent_code: permanentCode })); }); } /** * 获取应用的管理员列表 * @param authCorpId 授权方corpid * @param agentId 授权方安装的应用agentid */ static getAdminList(apiConfig, authCorpId, agentId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.SUITE_TOKEN); let url = util.format(this.getAdminListUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_corpid: authCorpId, agentid: agentId })); }); } /** * 通讯录单个搜索 * @param authCorpId 授权方corpid * @param queryWord 搜索关键词 * @param queryType 查询类型 1:查询用户,返回用户userid列表 2:查询部门,返回部门id列表。 不填该字段或者填0代表同时查询部门跟用户 * @param agentId 应用id * @param offset 查询的偏移量 * @param limit 查询返回的最大数量,最多为50 */ static searchContact(apiConfig, authCorpId, queryWord, queryType, agentId, offset, limit) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.PROVIDER_TOKEN); let url = util.format(this.searchContactUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_corpid: authCorpId, query_word: queryWord, query_type: queryType, agentid: agentId, offset: offset, limit: limit })); }); } /** * 通讯录批量搜索 * @param authCorpId 授权方corpid * @param queryRequestList 索请求列表,每次搜索列表数量不超过50 * @param agentId 应用id */ static batchSearchContact(apiConfig, authCorpId, queryRequestList, agentId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.PROVIDER_TOKEN); let url = util.format(this.batchSearchContactUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_corpid: authCorpId, query_request_list: queryRequestList, agentid: agentId })); }); } /** * 上传临时素材 * @param mediaType 媒体文件类型 * @param filePath 文件路径 * @param accessToken AccessToken */ static upload(apiConfig, mediaType, filePath) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig); let url = util.format(this.uploadUrl, accessToken.getAccessToken, mediaType); return kits_1.HttpKit.getHttpDelegate.upload(url, filePath); }); } /** * 异步通讯录id转译 * @param authCorpId 授权方corpid * @param mediaIdList 需要转译的文件的media_id列表 * @param outputFileName 转译完打包的文件名,不需带后缀 */ static contactIdTranslate(apiConfig, authCorpId, mediaIdList, outputFileName) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.PROVIDER_TOKEN); let url = util.format(this.contactIdTranslateUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_corpid: authCorpId, media_id_list: mediaIdList, output_file_name: outputFileName })); }); } /** * 获取异步任务结果 * @param jobId 异步任务id */ static getBatchResult(apiConfig, jobId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.PROVIDER_TOKEN); let url = util.format(this.getBatchResultUrl, accessToken.getAccessToken, jobId); return kits_1.HttpKit.getHttpDelegate.httpGet(url); }); } /** * 通讯录userid排序 * @param authCorpId 授权方corpid * @param userIdList 要排序的userid列表,最多支持1000个 * @param sortType 排序方式 0:根据姓名拼音升序排列,返回用户userid列表 1:根据姓名拼音降排列,返回用户userid列表 */ static sortContact(apiConfig, authCorpId, userIdList, sortType) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.OpenCpAccessTokenApi.getAccessToken(apiConfig, accesstoken_1.AccessTokenType.PROVIDER_TOKEN); let url = util.format(this.sortContactUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ auth_corpid: authCorpId, useridlist: userIdList, sort_type: sortType })); }); } } exports.OpenCpApi = OpenCpApi; OpenCpApi.getPreAuthCodeUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_pre_auth_code?suite_access_token=%s'; OpenCpApi.setSessionInfoUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/set_session_info?suite_access_token=%s'; OpenCpApi.getPermanentCodeUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_permanent_code?suite_access_token=%s'; OpenCpApi.getAuthInfoUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_auth_info?suite_access_token=%s'; OpenCpApi.getAdminListUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_admin_list?suite_access_token=%s'; OpenCpApi.searchContactUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/contact/search?provider_access_token=%s'; OpenCpApi.batchSearchContactUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/contact/batchsearch?provider_access_token=%s'; OpenCpApi.uploadUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/media/upload?provider_access_token=%s&type=%s'; OpenCpApi.contactIdTranslateUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/contact/id_translate?provider_access_token=%s'; OpenCpApi.getBatchResultUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/batch/getresult?provider_access_token=%s&jobid=%s'; OpenCpApi.sortContactUrl = 'https://qyapi.weixin.qq.com/cgi-bin/service/contact/sort?provider_access_token=%s'; //# sourceMappingURL=OpenCpApi.js.map