网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Typeform

2026-03-24 新闻来源:网淘吧 围观:93
电脑广告
手机广告

Typeform

通过托管的OAuth认证访问Typeform API。创建和管理表单、检索回复并获取洞察分析。

快速开始

# 列出表单
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/typeform/forms?page_size=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

基础URL

https://gateway.maton.ai/typeform/{原生API路径}

{native-api-path}替换为实际的Typeform API端点路径。网关会将请求代理至api.typeform.com并自动注入您的OAuth令牌。

认证

所有请求都需要在Authorization头部包含Maton API密钥:

Authorization: Bearer $MATON_API_KEY

环境变量:将您的API密钥设置为MATON_API_KEY:

export MATON_API_KEY="YOUR_API_KEY"

获取您的API密钥

  1. 登录或在以下网址创建账户maton.ai
  2. 前往maton.ai/settings
  3. 复制您的API密钥

连接管理

在以下网址管理您的Typeform OAuth连接https://ctrl.maton.ai

列出连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=typeform&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

创建连接

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'typeform'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

获取连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

响应:

{
  "connection": {
    "connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
    "status": "ACTIVE",
    "creation_time": "2025-12-08T07:20:53.488460Z",
    "last_updated_time": "2026-01-31T20:03:32.593153Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "typeform",
    "metadata": {}
  }
}

打开返回的网址在浏览器中完成 OAuth 授权。

删除连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

指定连接

如果您有多个 Typeform 连接,请通过Maton-Connection请求头指定要使用的连接:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/typeform/forms?page_size=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

如果省略此请求头,网关将使用默认(最早创建的)活跃连接。

API 参考

用户

GET /typeform/me

表单

列出表单

GET /typeform/forms?page_size=10

获取表单

GET /typeform/forms/{formId}

创建表单

POST /typeform/forms
Content-Type: application/json

{
  "title": "客户调查",
  "fields": [
    {"type": "short_text", "title": "您的姓名是什么?"},
    {"type": "email", "title": "您的电子邮箱是什么?"}
  ]
}

更新表单

PUT /typeform/forms/{formId}
Content-Type: application/json

{
  "title": "更新后的调查标题",
  "fields": [...]
}

删除表单

DELETE /typeform/forms/{formId}

回复

列出回复

GET /typeform/forms/{formId}/responses?page_size=25

使用筛选器:

GET /typeform/forms/{formId}/responses?since=2024-01-01T00:00:00Z&until=2024-12-31T23:59:59Z&completed=true

洞察分析

GET /typeform/insights/{formId}/summary

工作区

GET /typeform/workspaces
GET /typeform/workspaces/{workspaceId}

字段类型

  • short_text- 单行文本
  • long_text- 多行文本
  • 电子邮件- 电子邮件地址
  • 数字- 数字输入
  • 评分- 星级评分
  • 意见量表- 0-10 量表
  • 多项选择- 单选或多选
  • 是/否- 布尔值
  • 日期- 日期选择器
  • 下拉菜单- 下拉选择

代码示例

JavaScript

const response = await fetch(
  'https://gateway.maton.ai/typeform/forms?page_size=10',
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);

Python

import os
import requests

response = requests.get(
    'https://gateway.maton.ai/typeform/forms',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
    params={'page_size': 10}
)

注意事项

  • 表单ID是字母数字字符串
  • 响应分页使用before令牌
  • 时间戳采用 ISO 8601 格式
  • DELETE 操作返回 HTTP 204
  • 重要提示:使用 curl 命令时,如果 URL 包含括号(curl -g请使用fields[]sort[]records[])以禁用通配符解析
  • 重要提示:将curl输出通过管道传递给jq或其他命令时,在某些shell环境中,像$MATON_API_KEY这样的环境变量可能无法正确展开。通过管道传递时,您可能会遇到“无效API密钥”的错误。

错误处理

状态码含义
400缺少Typeform连接
401无效或缺少Maton API密钥
429请求频率受限(每个账户每秒10次请求)
4xx/5xx来自Typeform API的透传错误

故障排除:API密钥问题

  1. 检查MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
  1. 通过列出连接来验证API密钥是否有效:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

故障排除:无效的应用名称

  1. 确保您的URL路径以typeform开头。例如:
  • 正确示例:https://gateway.maton.ai/typeform/forms
  • 错误示例:https://gateway.maton.ai/forms

资源

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第236418名访客 今日有38篇新文章/评论