Obsidian を使用して記事を書いている私は、Medium に公開するときにコンテンツを手動でコピーしてフォーマットする必要があることによく気づきます。このプロセスは、特に Markdown ファイルを扱う場合、時間がかかり、繰り返しになる可能性があります。ワークフローを合理化するために、Markdown ファイルの Medium への直接パブリッシュを自動化する Python スクリプトを開発することにしました。この記事では、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 を正常に取得できたので、記事の公開に進むことができます。このプロセスには、記事のコンテンツといくつかのメタデータを含む POST リクエストを Medium の API に送信することが含まれます。
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