能否使用Notion API将CSV中的Twitter链接批量转为页面内嵌推文?
问题解答
可行性说明
你的需求完全可以通过官方Notion API实现,你之前使用的非官方notion-py库已经停止维护多年,不兼容当前Notion官方API规范,因此会出现Invalid input报错,不属于需求本身不可实现的问题。
推荐方案(按实现难度从低到高排序)
方案1:零代码手动批量导入(最适合无编程经验用户)
- 从CSV中单独提取URL列内容,导出为每行仅含一个Twitter链接的纯文本文件
- 用任意文本编辑器打开该文件,执行批量替换:给每行内容的开头添加
/tweet(注意tweet后面有一个空格),处理后每行格式为/tweet https://twitter.com/xxx/status/xxx - 全选所有处理后的内容,直接复制粘贴到目标Notion页面中,Notion会自动识别
/tweet命令,批量生成和手动操作效果完全一致的内嵌推文块
方案2:官方Notion API自动导入(适合需要重复执行、数据量极大的场景)
前置准备
- 前往Notion开发者后台创建内部集成,获取你的
Internal Integration Token - 打开目标Notion页面,点击右上角「共享」按钮,搜索你刚创建的集成名称,授予编辑权限
- 从目标Notion页面的URL中提取页面ID:URL格式为
https://notion.so/[用户名]/[32位字符的页面ID]?v=xxx,仅复制32位的页面ID部分即可
代码实现(Python,门槛更低)
首先安装官方Python SDK:pip install notion-client
运行以下代码即可完成批量导入:
import csv from notion_client import Client # 替换为你自己的集成Token NOTION_TOKEN = "你的Internal Integration Token" # 替换为你的目标页面ID PAGE_ID = "你提取的32位页面ID" # 替换为你的CSV文件路径 CSV_PATH = "你的存储Twitter链接的CSV文件路径.csv" # 初始化Notion客户端 notion = Client(auth=NOTION_TOKEN) # 读取CSV中的Twitter链接 twitter_url_list = [] with open(CSV_PATH, "r", encoding="utf-8") as csv_file: csv_reader = csv.DictReader(csv_file) for row in csv_reader: twitter_url_list.append(row["URL"]) # 批量添加内嵌推文块到Notion页面 for twitter_url in twitter_url_list: notion.blocks.children.append( block_id=PAGE_ID, children=[ { "object": "block", "type": "embed", "embed": { "url": twitter_url } } ] )
常见问题排查
如果运行时报Invalid input错误,优先检查两个配置项:
- 确认你创建的集成已经获得目标页面的编辑权限
- 确认页面ID没有复制错误,不要携带URL中
?v=后面的参数内容
内容的提问来源于stack exchange,提问作者P A N
相关产品推荐
相关产品推荐

