- 授权
- 用户取消授权
- 发起授权
- 获取 Access Token
- 获取用户信息
- 刷新 Access Token
- 接口索引 v2
- 新建文档 v2
- 查询文档 v2
- 重命名文档 v2
- 移动文档 v2
- 删除文档 v2
- 生成副本 v2
- 收藏文档 v2
- 置顶文档 v2
- 设置水印 v2
- 创建快捷方式 v2
- 恢复文档 v2
- 导入文档说明 v2
- 预导入文档 v2
- 上传文档至 COS v2
- 异步导入文档 v2
- 查询导入进度 v2
- 导出文档 v2
- 导出进度查询 v2
- 获取文档列表 v2
- 查询文件夹信息 v2
- 添加文件夹 v2
- 删除文件夹 v2
- 查询文件夹权限 v2
- 移动文件夹 v2
- 重命名文件夹 v2
- 查询用户访问权限 v2
- 转让文档所有权 v2
- 查看文档权限 v2
- 设置文档权限 v2
- 申请文档权限 v2
- 添加协作成员 v2
- 移除协作成员 v2
- 查询协作成员 v2
- 列表过滤 v2
- 关键字搜索 v2
- fileID 转换 v2
- 上传图片 v2
- 查询消息列表未读数量 v2
- 接口索引 v2
- Smartsheet 基本概念 v2
- 接口索引 v2
- 添加子表 v2
- 删除子表 v2
- 查询子表 v2
- 添加视图 v2
- 删除视图 v2
- 查询视图 v2
- 添加记录 v2
- 删除记录 v2
- 查询记录 v2
- 更新记录 v2
- 添加字段 v2
- 删除字段 v2
- 查询字段 v2
- 更新字段 v2
- 接口索引 v3
- 获取 Doc 文档内容 v3
- 更新 Doc 文档内容 v3
- 接口索引 v2
- 更新收集截止时间 v2
- 生成收集结果 v2
- 概况
- 简介
- 从小程序跳转
- 从经过微信认证的 App 跳转
- 从微信 H5 网页跳转
- 打开腾讯文档列表页
- 打开一篇文档或发布为网页的文档
- 打开模板商城、资料包领取等功能
- 导入文件到腾讯文档
- 跳转其他小程序
- 简介
- 通过小程序调用授权
- 通过 App 调用授权(微信小程序)
- 通过 App 调用授权(QQ 小程序)
- 授权后获取 Token
- 返回腾讯文档小程序
- 问题排查
- 常见错误码 v3
- 频率控制
- 请求头部 v2
- 常见错误码 v2
- folderID v2
- 文件信息 v2
- ID 介绍 v2
- 令牌长度
- ID 介绍 v2
- 文件元信息 v2
- folderID v2
- 文件类型 v2
- COS 文件信息 v2
- 列表类型和排序类型 v2
- 文件列表信息 v2
- 文件夹信息 v2
- 文件夹权限信息 v2
- 文档权限 policy v2
- 搜索文件类型 v2
- 搜索结果列表 v2
- 上传图片接口支持的图片类型 v2
- 查询子表 v2
- 添加子表 v2
- 删除多行(列) v2
- 清空区域内容 v2
- 更新区域内容 v2
- 批量插入图片 v2
- SheetProperties v2
- Smartsheet 基本概念 v2
- AddSheetRequest v2
- 参数列表 v2
- 参数列表 v2
- 参数列表 v2
- Document v3
- Request v3
- 文件来源 v2
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
通过 App 调用授权(微信小程序)
通过 App 调用授权(微信小程序)
第三方 App 可接入微信开放平台 SDK,实现跳转腾讯文档微信小程序,调用腾讯文档开放平台授权能力,获得用于换取 access_token 的授权码。
请先参考微信开放平台移动应用接入指南(iOS (opens new window)/Android (opens new window)),接入微信开放平台 SDK,并根据应用在微信开放平台上注册的信息,完成 SDK 的初始化操作;iOS 应用还需要按照上述文档要求,配置好应用的 Universal Link。
跳转腾讯文档微信小程序开放平台授权的 path 为 URL 编码格式,其中路径名为 packages/miniapp-open/open-auth/open-auth
,并需拼接 2 个参数,具体参数的规则如下:
client_id
:在腾讯文档开放平台申请的 Client ID;state
:值可以为空,如果应用需要在授权时传入一些状态信息,以便于授权完成后,继续执行特定的业务逻辑,可以自拟 state 的值,授权完成后会将该 state 值原样返回给应用。
请注意所有的参数值都需要先做一次 URL Encode,然后拼接到授权页路径上。第一个参数名前面使用 ? 号,其余的参数名前面使用 & 号。
代码示例(Android)(参考微信官方文档 (opens new window)):
String appId = "填写应用在微信开放平台的 APPID";
String clientId = "填写您在腾讯文档开放平台的 ClientID";
String state = "填写您自定义的状态参数,可留空";
WXAPI api = WXAPIFactory.createWXAPI(context, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_252c5f06840b";
req.path = "packages/miniapp-open/open-auth/open-auth?client_id=" + URLEncoder.encode(clientId) + "&state=" + URLEncoder.encode(state);
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_RELEASE;
api.sendReq(req);
// 在 WXEntryActivity 的 onResp 中获取授权完成的 code 和 state
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
String extraData = ((WXLaunchMiniProgram.Resp) resp).extMsg;
JSONObject respObj = new JSONObject(extraData);
String code = respObj.getString("code");
String state = respObj.getString("state");
}
}
代码示例(iOS)(参考微信官方文档 (opens new window)):
NSString *clientId = @"填写您在腾讯文档开放平台的 ClientID";
NSString *state = @"填写您自定义的状态参数,可留空";
NSString *escapedClientId = [clientId stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];
NSString *escapedState = [state stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = @"gh_252c5f06840b";
launchMiniProgramReq.path = [NSString stringWithFormat:@"packages/miniapp-open/open-auth/open-auth?client_id=%@&state=%@", escapedClientId, escapedState];
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
[WXApi sendReq:launchMiniProgramReq];
// 在注册为微信回调函数的 onResp 中获取授权完成的 code 和 state
- (void) onResp: (BaseResp*)resp {
if ([resp isKindOfClass: [WXLaunchMiniProgramResp class]]) {
NSString *extraData = [(WXLaunchMiniProgramResp *)resp extMsg];
NSError *jsonError;
NSDictionary *respObj = [NSJSONSerialization JSONObjectWithData:[extraData dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&jsonError];
NSString *code = [respObj valueForKey:@"code"];
NSString *state = [respObj valueForKey:@"state"];
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论