」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 Python 和 Medium API 將文章發佈到 Medium

如何使用 Python 和 Medium API 將文章發佈到 Medium

發佈於2024-09-03
瀏覽:302

介紹

作為使用 Obsidian 撰寫文章的人,我經常發現自己在發佈到 Medium 時需要手動複製和格式化我的內容。此過程可能非常耗時且重複,尤其是在處理 Markdown 文件時。為了簡化我的工作流程,我決定開發一個 Python 腳本,自動將 Markdown 檔案直接發佈到 Medium。在本文中,我很高興與您分享如何使用 Medium API 以程式設計方式發布文章,使流程更快、更有效率。

設定Medium API

要與 Medium 的 API 交互,您首先需要產生整合令牌。此令牌將允許您的 Python 腳本代表您進行身份驗證並執行操作。

產生整合代幣的步驟:

  1. 轉到您的中安全性和應用程式。
  2. 向下捲動到「整合令牌」部分。
  3. 點選「取得整合令牌」。
  4. 複製產生的token並妥善保管;你的腳本需要它。

有了代幣在手,您就可以開始編碼了。

獲取用戶的詳細資訊和出版物

這是您將用於與 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 查看您的最新草稿。確認所有內容格式正確後,您可以直接發布!


探索更多

How to Publish an Article to Medium Using Python and the Medium API

劉盧卡

你好呀! ?我是 Luca,對所有數據充滿熱情的商業智慧開發人員。精通 Python、SQL、Power BI、Tableau、SAP 業務對象。

感謝您花時間與我一起探索與數據相關的見解。感謝您的參與。

?在 LinkedIn 上與我聯繫

How to Publish an Article to Medium Using Python and the Medium API

版本聲明 本文轉載於:https://dev.to/luca1iu/how-to-publish-an-article-to-medium-using-python-and-the-medium-api-50g2?1如有侵犯,請洽study_golang @163.com刪除
最新教學 更多>
  • PHP 如何有效率地處理大整數?
    PHP 如何有效率地處理大整數?
    PHP 可以處理大整數嗎? PHP 可能沒有明確的「BigInteger」類,但它提供了幾種處理大整數的方法整數。 使用 BC 數學函數PHP 提供BC 數學函數,如用於整數算術的 bcadd() 和 bcsub()。然而,這種方法對於大量計算來說可能會很慢。 使用 GMP 擴展GMP(GNU 多精...
    程式設計 發佈於2024-11-07
  • 如何使用 Python 字串匹配驗證 IP 位址輸入?
    如何使用 Python 字串匹配驗證 IP 位址輸入?
    使用 Python 驗證 IP 位址輸入驗證使用者輸入的 IP 位址在各種應用中至關重要。本文將探討驗證以字串形式提供的 IP 位址合法性的最有效方法。 首選方法偏離解析,而是利用 Python 標準函式庫的套接字模組。透過利用 inet_aton(),我們可以確定輸入字串是否代表有效的 IP 位址...
    程式設計 發佈於2024-11-07
  • 那麼 Pull 請求如何再次發揮作用呢?螢幕顯示#3
    那麼 Pull 請求如何再次發揮作用呢?螢幕顯示#3
    在我之前的文章中,我談到了啟動一個基於開源 GenAI 的終端應用程式。本週的任務是為另一個用戶的專案貢獻一個新功能。由於我們必須與新人合作,所以我與 Lily 合作,她開發了一個應用程序,其代碼改進功能與我的類似,只是她的角色是老鼠! 有時間的話可以去看看她的專案老鼠助手。 她的程式碼是用 T...
    程式設計 發佈於2024-11-07
  • 為什麼 Go 中不能直接將 []string 轉換為 []interface{}?
    為什麼 Go 中不能直接將 []string 轉換為 []interface{}?
    為什麼將[]string 轉換為[]interface{} 會在Go 中引發編譯錯誤轉換字串切片([] string)考慮到它們共享切片特徵以及[]string 的每個元素都可以被視為一個接口,Go 中的接口切片([]interface{}) 似乎很簡單。然而,嘗試這種轉換時會出現編譯錯誤,讓程式設...
    程式設計 發佈於2024-11-07
  • 理解 Shadow DOM:封裝 Web 元件的關鍵
    理解 Shadow DOM:封裝 Web 元件的關鍵
    在現代 Web 開發中,創建可重複使用和可維護的元件至關重要。 Shadow DOM 是 Web 元件標準的一部分,在實現這一目標方面發揮著至關重要的作用。本文深入探討了 Shadow DOM 的概念、它的優點以及如何在您的專案中有效地使用它。 什麼是 Shadow DOM? Sh...
    程式設計 發佈於2024-11-07
  • 如何使用 Java 運行時解決輸出重定向問題?
    如何使用 Java 運行時解決輸出重定向問題?
    使用Runtime 的exec() 方法解決輸出重定向問題在Java 中,利用Runtime.getRuntime().exec() 運行指令可以擷取進程的輸出和錯誤流。但是,在需要輸出重定向的情況下,單獨使用此方法可能會無效。 問題:輸出未重定向當使用Runtime.getRuntime().ex...
    程式設計 發佈於2024-11-07
  • 如何使用 CSS 懸停效果從左到右填滿背景顏色?
    如何使用 CSS 懸停效果從左到右填滿背景顏色?
    使用CSS 從左到右填充背景顏色在CSS 中,您可以透過利用線性漸層和動畫背景定位來創造迷人的懸停效果。這種方法使您能夠在懸停時從左到右用新顏色填充元素的背景。 線性漸變和背景大小關鍵是使用由兩種顏色組成的線性漸變背景,並將背景大小設定為元素寬度的兩倍。這允許您在兩種顏色之間創建無縫過渡。 背景定位...
    程式設計 發佈於2024-11-07
  • GraalVM 本機映像中的記憶體管理
    GraalVM 本機映像中的記憶體管理
    内存管理是计算机软件开发的重要组成部分,负责应用程序中内存的有效分配、利用和释放。其重要性在于增强软件性能,保证系统稳定性。 垃圾收集 垃圾收集 (GC) 在 Java 和 Go 等当代编程语言中至关重要。它自动检测并回收未使用的内存,从而减轻开发人员手动管理内存的需要。 GC 的概...
    程式設計 發佈於2024-11-07
  • ## 在 C++ 中什麼時候應該使用參考作為函數參數?
    ## 在 C++ 中什麼時候應該使用參考作為函數參數?
    在 C 中傳遞參數:瞭解引用在 C 中,函數參數的行為由其型別決定。一個重要的區別是「按值傳遞」和「按引用傳遞」。 為什麼在函數參數中使用引用? 引用在函數參數中用於兩種情況主要原因:修改參數:引用允許函數修改值論證通過了。這意味著該函數可以進行呼叫者可見的更改。 避免物件複製: 透過引用傳遞大物件...
    程式設計 發佈於2024-11-07
  • 為什麼會出現“getaddrinfo 失敗”以及如何修復?
    為什麼會出現“getaddrinfo 失敗”以及如何修復?
    探索“getaddrinfo failed”錯誤名稱解析過程中發生錯誤“getaddrinfo failed”,其中主機名稱被翻譯轉換為IP 位址。它顯示所提供的主機名的解析有問題。 深入研究錯誤情境從提供的錯誤追蹤中,我們可以將原因追溯到套接字。 getaddrinfo(主機,連接埠)方法。當無法...
    程式設計 發佈於2024-11-07
  • 如何在單一命令列中運行多行命令?
    如何在單一命令列中運行多行命令?
    如何在一行命令列中執行多行語句使用Python的-c選項執行單行循環時,在循環之前導入模組會導致語法錯誤。這是因為Python解釋器將程式碼區塊視為單一語句。 要解決此問題,可以採用以下幾種方法:使用管道要克服語法錯誤,請使用echo 命令將程式碼區塊作為一系列輸入行重定向到Python:echo ...
    程式設計 發佈於2024-11-07
  • 如何在 PHP 中從 MySQL 遷移到 MySQLi?
    如何在 PHP 中從 MySQL 遷移到 MySQLi?
    從 MySQL 遷移到 MySQLi將網站從 MySQL 遷移到 MySQLi 需要修改 PHP 程式碼,但資料庫本身基本上不受影響。 MySQLi 是 MySQL 擴充功能的改進版本,提供增強的功能和安全性。 PHP 程式碼變更是的,您可以簡單地將 MySQLi 函數替換為 MySQL 函數。這裡...
    程式設計 發佈於2024-11-07
  • 如何在CSS中實現背景和子元素的不同透明度?
    如何在CSS中實現背景和子元素的不同透明度?
    理解 CSS 背景不透明度在 CSS 中,不透明度控制元素的透明度。當應用於容器時,它自然會影響背景及其子元素。 繼承問題要實現背景和子元素不同的不透明度, CSS 繼承帶來了挑戰。子元素從其父容器繼承不透明度,從而導致所提供範例中的背景和文字具有相同的不透明度。 實現所需不透明度的解決方案實現要達...
    程式設計 發佈於2024-11-07
  • 【個人網站】Next如何整合Notion資料庫
    【個人網站】Next如何整合Notion資料庫
    To integrate a Notion database into a Next.js project, you can use Notion as a content management system (CMS) and display its content on your website...
    程式設計 發佈於2024-11-07
  • 為什麼 PhpMyAdmin 在 Ubuntu 12.04 上給出「MySQLi 擴充缺失」錯誤?
    為什麼 PhpMyAdmin 在 Ubuntu 12.04 上給出「MySQLi 擴充缺失」錯誤?
    PhpMyAdmin 錯誤:MySQLi 擴充缺失在 Ubuntu 12.04 遇到 PhpMyAdmin 問題?儘管安裝了 Apache2、PHP5、MySQL 和 PhpMyAdmin,您還是遇到了「mysqli 擴充遺失」錯誤。 儘管您已取消註解 php.ini 中的「extension=my...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3