Vue3-接入飞书H5应用

引言

最近做了一个新项目,需要接入飞书H5应用,做得过程中也是遇到好多问题,现在总结分享给大家。

操作

首先遇到的一个棘手的问题就是免登问题,下面是官方文档的介绍:
1、开发指南开发网页应用开发指南
2、网页应用免登(SSO)示例代码介绍

我是直接使用第2条。

按照官方文档引入

<!-- 在html文档中引入 JSSDK -->
<!-- JS 文件版本在升级功能时地址会变化,如有需要(比如使用新增的 API),请重新引用「网页应用开发指南」中的JSSDK链接,确保你当前使用的JSSDK版本是最新的。-->
<script type="text/javascript"
src="https://lf1-cdn-tos.bytegoofy.com/goofy/lark/op/h5-js-sdk-1.5.26.js">
</script>
<!-- 在页面上添加VConsole方便调试-->
<script src="https://unpkg.com/vconsole/dist/vconsole.min.js"></script>
<script>
// VConsole will be exported to `window.VConsole` by default.
var vConsole = new window.VConsole();
</script>

然后,我们在Vue项目中这样使用:

onMounted(() =>{
  const _userData = localStorage.getItem("userData")
  if (_userData) {
    userDataRef.value = JSON.parse(_userData)
  } else {
    console.log("window.h5sdk.ready before");
    if (window.h5sdk){
      showLoading.value = true
      window.h5sdk.ready(() => {
        // 调用JSAPI tt.requestAccess 获取 authorization code
        tt.requestAccess({
          appID: 'xxx',
          scopeList: [],
          // 获取成功后的回调
          success(res) {
            console.log("getAuthCode succeed", res);
            showLoading.value = false
            if (res.code) {
              getUserInfo(res.code, (res) => {
                //todo:做你自己的业务逻辑
              })
            }
          },
          // 获取失败后的回调
          fail(err) {
            showLoading.value = false
            showToast('鉴权失败!')
            console.log(`getAuthCode failed, err:`, JSON.stringify(err));
          }
        })
      })
    }else {
      console.log("window.h5sdk not ready");
    }
  }
})

解释一下,页面打开之后立即查询是否有userData数据,如果有,则不获取飞书code,否则获取code,获取完扔给后台,后台处理完之后带上用户信息返回即可,这样就完成了免登操作,下面介绍下如何本地调试。

本地调试

1、登录飞书的后台应用,点击去调试按钮:
在这里插入图片描述
2、填写你的本地开发地址(推荐ip形式)
在这里插入图片描述
3、即可打开飞书浏览你本地的开发环境
在这里插入图片描述
因为我们引入了vconsole,所以会显示你打印的日志,方便你开发调试。

在这里插入图片描述
4、注意要在后台管理的安全设置里面设置重定向URL,否则获取Code会失败
在这里插入图片描述

总结

1、本地调试:用IP不要用localhost
2、发布飞书应用想让全体成员公开,需要发布的时候设置选中全体成员,如下所示:
在这里插入图片描述

引用

错误码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值