作為使用 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