目录
接上文Coze应用:知识库自动生成QA并导入,其中API token是手动填写的,一般就填写个人令牌。而另外的一种写法就是些OAuth授权后的的access_token,但这个过程一般需要网站进行跳转。懒得搞(其实外站更简单),然后开始思考Coze应用能否自己实现这个功能,随便也探索和熟悉下应用开发。好吧,又捣腾出来了:无外站实现 OAuth授权示例
简述OAuth过程
- 获取授权链接,并设置跳转链接
- 进授权页面
- 授权后返回跳转链接,此时获得Code
- 通过code取得access_token和refresh_token
- refresh_token刷新access_token或重新授权
前期工作
需要在Coze后的后台=》API入口=》授权=》创建应用,类型:移动端/PC 桌面端/单页面应用,需要将预览链接和发布后的链接填入【重定向 URL】,复制客户端ID。
应用的工作流程
- 页面加载时触发工作流,取得授权链接。回调链接设置为应用首页的链接
- 点击授权按钮,跳转到授权页面
- 完成授权返回,带着Code回到首页
- 再次触发页面加载,再次加载工作流,并传入qurey参数,用Code换取access_token,完成授权
- 已授权过的加载页面时判断access_token和refresh_token的有效性,刷新或者重新授权

翻车了
测试环境是OK的,发布上线就G了。
原因:
正式环境的是允许在iframe中,qurey的code不会传递到iframe中
缺点
- 按钮跳转授权页面后,会多一个窗口,并且无法关闭。
- 不易复制,部分逻辑于页面绑定,在新应用中复用毕竟麻烦
一些感觉
- 这个应用场景感觉还是有限,除了类似知识库生成和QA导入。毕竟是对官方后台的一些小辅助。
- 应用拉拽搭建方式自由度有限,许多功能还是会受限,稍微复杂的还是得自己搞。
- Oauth授权还是在自己服务器上搞方便的多
- 用AI生成一个页面再调试,实际上应该和搭扣子应用差不多。触发一定要上架扣子
参考
OAuth 授权码授权