@tnwx2/opencp
Version:
TTNWX 微信系开发脚手架之企业微信开放平台
204 lines • 10.7 kB
JavaScript
;
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