# 起步
完整的 SDK 由前端集成模块和服务端 Open API 组成。前端集成模块提供了文档编辑相关的功能,而 Open API 提供了文档存储、权限控制等功能。任何情况下,都不推荐前端直接访问 Open API,而是通过接入方自己的服务器进行转发。
# 准备工作
在调用 Open API 之前,你需要向讯飞文档 docs@iflytek.com 申请 AppID
和 AppSecret
。AppSecret
是你应用的唯一凭证,请妥善保管。我们强烈建议将 AppSecret
的使用放在服务端。如果意外泄露,请及时联系我们进行重置。
更多关于 AppID
和 AppSecret
的信息,可参考 名词解释。
邮件应包括以下信息:
- 应用名称
- 应用类别
- 应用介绍
# 接入说明
讯飞文档 SDK 的前端提供了HTML5 页面接入的方式。
页面接入是通过 <iframe>
标签内嵌 HTML5 页面的方式实现,接入非常简单,具体请参考 前端集成。
下面一起来体验一下页面接入的方式吧。
这一部分会涉及 Open API 的调用,详细内容请参考 Open API 接入指南。
# 获取授权
通过你喜欢的方式发起一个请求,获取到 accessToken
。注意,你应该在服务端发起此请求。
以 Node.js
为例:
点击查看
const request = require('request')
const options = {
method: 'POST',
url: 'https://openapi.iflydocs.com/user/v1/api/auth/token',
headers: { 'Content-Type': 'application/json' },
body: {
appId: '6da37dd3',
appSecret: '******',
appUserId: '10001',
},
json: true,
}
request(options, (error, response, body) => {
if (error) throw new Error(error)
console.log(body)
})
或者通过 curl
命令:
点击查看
curl -X POST \
https://openapi.iflydocs.com/user/v1/api/auth/token \
-H 'Content-Type: application/json' \
-d '{
"appId": "6da37dd3",
"appSecret": "******",
"appUserId": "10001"
}'
如果一切正常,那么你将会得到类似下面的响应:
{
"code": 0,
"message": "正常",
"data": {
"accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjIjoiRE9DU19URVNUIiwicyI6MTYxNDc1NTQzMDUxNSwidCI6IkEiLCJ1IjoiMTYxNDc1NDM1NzE0MiIsImlzcyI6ImF1dGgwIiwiZXhwIjoxNjE0ODQxODMwfQ.JYdrVYz8mL7t_D-hXMcV_eNqrapbl08N0FJY4jYkndw",
"refreshToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjIjoiRE9DU19URVNUIiwicyI6MTYxNDc1NTQzMDUwNywidCI6IlIiLCJ1IjoiMTYxNDc1NDM1NzE0MiIsImlzcyI6ImF1dGgwIiwiZXhwIjoxNjE3MzQ3NDMwfQ.xHXPXD3h8PooYAe4B-t7Dq1fTKOHm7iB59G-uI0IimQ",
"expiresIn": 86399,
"expireTime": 1614841830515,
"uid": 1614754357142,
"appId": "6da37dd3",
"appUserId": "10001"
}
}
这样你就得到了一个 accessToken
,更多的信息请参考 Open API 接入指南。
# 创建文档
调用我们创建文档的接口,可以创建一篇新的文档。同样,在服务端,使用你喜欢的方式。
点击查看
const request = require('request')
const options = {
method: 'POST',
url: 'https://openapi.iflydocs.com/fs/fs/doc/create',
headers: {
Authorization:
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjIjoiRE9DU19URVNUIiwicyI6MTYxNDc1NTQzMDUxNSwidCI6IkEiLCJ1IjoiMTYxNDc1NDM1NzE0MiIsImlzcyI6ImF1dGgwIiwiZXhwIjoxNjE0ODQxODMwfQ.JYdrVYz8mL7t_D-hXMcV_eNqrapbl08N0FJY4jYkndw',
'Content-Type': 'application/json',
},
body: {
parentFid: '0',
docType: 'note',
spaceType: 1,
name: 'Hello, World!',
},
json: true,
}
request(options, function(error, response, body) {
if (error) throw new Error(error)
console.log(body)
})
关注响应中的 fid
,也就是文档的唯一标识,后面我们将通过 fid
打开文档编辑器。
{
"code": 0,
"message": "success",
"data": {
"status": 1,
"fid": "1P3",
"appId": "6da37dd3",
"name": "Hello, World!",
"parentFid": "0",
"...": "..."
}
}
# 生成 URL
我们有一个通用的编辑页面,通过传入文档 ID 和授权令牌就可以访问并编辑指定的文档。
基础 URL 为:https://open.iflydocs.com/v2/editor/editor.html
。
文档 ID 和授权令牌就是前面通过请求 Open API 得到的 fid
和 accessToken
。把它们作为查询参数拼接到 URL 后面,你将得到:
https://open.iflydocs.com/v2/editor/editor.html?fid=1P3&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjIjoiRE9DU19URVNUIiwicyI6MTYxNDc1NTQzMDUxNSwidCI6IkEiLCJ1IjoiMTYxNDc1NDM1NzE0MiIsImlzcyI6ImF1dGgwIiwiZXhwIjoxNjE0ODQxODMwfQ.JYdrVYz8mL7t_D-hXMcV_eNqrapbl08N0FJY4jYkndw
提示
基础 URL 在不同的服务环境中有不同地址,具体请参考 服务环境。
# 集成到应用
在你的页面中,添加以下代码:
<body>
<iframe id="editor" frameborder="0" width="1024" height="768"></iframe>
<script>
document.getElementById('editor').src = `${上一步得到的URL}`
</script>
</body>