作为使用 Obsidian 撰写文章的人,我经常发现自己在发布到 Medium 时需要手动复制和格式化我的内容。此过程可能非常耗时且重复,尤其是在处理 Markdown 文件时。为了简化我的工作流程,我决定开发一个 Python 脚本,自动将 Markdown 文件直接发布到 Medium。在本文中,我很高兴与您分享如何使用 Medium API 以编程方式发布文章,使该过程更快、更高效。
要与 Medium 的 API 交互,您首先需要生成集成令牌。此令牌将允许您的 Python 脚本代表您进行身份验证并执行操作。
生成集成令牌的步骤:
有了令牌在手,您就可以开始编码了。
这是您将用于与 Medium API 交互的 Python 代码:
import requests # Replace these with your actual Medium integration token and file path MEDIUM_TOKEN = 'your_medium_integration_token' headers = { 'Authorization': f'Bearer {MEDIUM_TOKEN}', 'Content-Type': 'application/json', 'Accept': 'application/json', 'host': 'api.medium.com', 'Accept-Charset': 'utf-8' } url = '''https://api.medium.com/v1/me''' response = requests.get(url=url, headers=headers) print('status_code is: ',response.status_code) print('response text:', response.json()) print('userId:', response.json()['data']['id'])
获取用户信息
当您运行该脚本时,它会向 Medium 的 API 发送请求以获取您的用户信息。响应包括您的用户 ID 等详细信息,这是发布内容所必需的。
现在您已成功从 Medium API 检索到您的用户 ID,您可以继续发布文章。该过程涉及向 Medium 的 API 发送包含文章内容和一些元数据的 POST 请求。
import requests import json # Replace with your actual Medium integration token and user ID MEDIUM_TOKEN = 'your_medium_integration_token' USER_ID = 'your_user_id' headers = { 'Authorization': f'Bearer {MEDIUM_TOKEN}', 'Content-Type': 'application/json', 'Accept': 'application/json', 'host': 'api.medium.com', 'Accept-Charset': 'utf-8' } url = f'https://api.medium.com/v1/users/{USER_ID}/posts' # Article content and metadata data = { "title": "Your Article Title", "contentFormat": "markdown", # Choose 'html', 'markdown', or 'plain' "content": "# Hello World!\nThis is my first article using the Medium API.", "tags": ["python", "api", "medium"], "publishStatus": "draft" # Choose 'public' or 'draft' } # Sending the POST request response = requests.post(url=url, headers=headers, data=json.dumps(data)) print('Status code:', response.status_code) print('Response:', response.json())
现在您可以前往 Medium 查看您的最新草稿。确认所有内容格式正确后,您可以直接发布!
感谢您花时间与我一起探索与数据相关的见解。感谢您的参与。
?在 LinkedIn 上与我联系
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3