试图同步 Play Books 笔记的失败尝试
一次无果的尝试,但这个过程还是记录下,失败也是积攒经验的一种方式,没准之后我就能解决了呢。
不管 Kindle 还是微信读书都有专属 Obsidian 插件可以无缝同步读书笔记,于是我不甘心地还是想寻觅一个方法能够把 Google Play Books 自动保存的 Google Docs 笔记文件转成 Markdown 也同步到 Obsidian 里。
Day 1
初步想法:
(一)获取 Google Docs API 和 Google Drive API
(二)指定 Google Drive 文件夹 ID 和本地 md 文件夹地址
(三)遍历 Drive 文件夹,获取 Doc 文件的标题和最后修改时间
- 若本地文件夹不存在同名 md 文档,则创建 md,将从 Docs API 中获得的 JSON 转成 Markdown。
- 若存在同名文档,比较最后修改时间,若 Doc 晚于 md,更新 md;反之则不操作。
将以上 python 脚本保存后,在 Windows Task Scheduler 中创建新任务,设置定时运行,就可以实现自动更新 Google Play Books 笔记。
让 ChatGPT 老师帮我写完这个 python script 之后我信心满满开始尝试,中途安装了多少 library 也暂且不提,总之无数次操作之后还是频繁报错网络问题,不是 SSL 无法连接就是什么超时,但我单单用 request
试 http://www.google.com 得到的 response.status
明明也是 200,无语问苍天,到底问题出在哪里!很快我的当日免费提问额度用完,我也头晕脑胀,偃旗息鼓,来日再战。
另外通过 API 获取 Docs 的 JSON 数据一点都不简单!存一下 ChatGPT 给的步骤。
Enable Google Docs API
- Go to the Google Cloud Console.
- Create a new project or select an existing one.
- Enable the Google Docs API for your project.
Set Up Credentials
- In the Google Cloud Console, go to the “Credentials” section.
- Create OAuth 2.0 credentials.
- Download the credentials JSON file.
Authorize API and Download Document
Day 2
不死心,我又来了。
既然在本地跑这个脚本有问题,那先试试看 API 能不能获取成功呢?Google 有个 OAuth 2.0 Playground 可以在线测试。ChatGPT 给的教程如下。
Step 1: Open the OAuth 2.0 Playground
- Go to the OAuth 2.0 Playground.
Step 2: Configure the Playground
- Click on the settings icon (gear) in the upper-right corner.
- Check the box for
Use your own OAuth credentials
.- Input your Client ID and Client Secret obtained from the Google Cloud Console.
- Click on
Close
.Step 3: Authorize the API Scopes
- In the left sidebar, under “Step 1”, find the Google Docs API scopes. You can search for
https://www.googleapis.com/auth/> documents.readonly
for read-only access.- Click on the scope checkbox to select it.
- Click on
Authorize APIs
.Step 4: Authenticate
- You will be redirected to the Google sign-in page. Sign in with the Google account that has access to the Google Docs you want to > test.
- You will be redirected back to the OAuth Playground with an authorization code filled in.
Step 5: Exchange Authorization Code for Tokens
- Click on
Exchange authorization code for tokens
.- The access token and refresh token will be displayed.
Step 6: Make API Requests
- Under “Step 3”, set up the request. You will be making a
GET
request tohttps://docs.googleapis.com/v1/documents/{documentId}
.- Replace
{documentId}
with the actual ID of the Google Docs document you want to test.- Click on
Send the request
.Example API Request and Response
- Request URL:
https://docs.googleapis.com/v1/documents/YOUR_DOCUMENT_ID
- Response: You will get a JSON response with the document content.
用测试 API 可以正常获得 JSON 数据,不过 Docs 的数据居然有那——么——长,一个很短的文档导出成 JSON 时就已经有快 100 KB ,我真是想得太简单了!格式复杂得让人头晕,而且每个段落对应的 content
内容,中文部分居然全是用 Unicode 显示的!难怪一眼望过去我说怎么一个熟悉的字都没有!
又找了下 GitHub,发现有人写了类似的处理 Google Docs 的工具, Convert a Google Docs file (API response) to Markdown ,等我下次试试看。本次尝试以完美失败告终(苦笑)。
Comments