Python3.x系を使ってFC2ブログに記事を投稿してみるよ
最近は主にサーバーを借りてWordPressを運営しているので、無料ブログサービスを使うことはほとんど無くなりました。しかし、このたびFc2ブログを使う機会が訪れました。さらにブログの更新はプログラムを使って自動投稿するように設計することになりました。
というわけで、今回はPython3のプログラムを使ってFc2に投稿するコードを書いたので備忘録的にまとめておこうと思います。また、今回はFc2を対象に書きましたが、他のブログサービスでもXML-RPCに対応していれば使いまわすことが可能だと思います。
OS : macOS Serrie
Python : 3.6
1. 下準備
下準備と言ってもFc2に場合は特別にやることはありません。とりあえず準備しておいて欲しいのが、ブログIDとユーザネーム(メールアドレス), パスワードそしてエンドポイントのアドレスです。エンドポイントは各ブログサービス毎に固定のアドレスで、ここに情報を送信することでブログを更新します。エンドポイントや準備しなくてはいけない項目は、ブログサービスによって異なるので、こちらのサイトさん(情報が古いかもしれません)なんかを参考に環境に合わせてご準備ください。
2. 書いたコード
今回書いたコードが以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#coding: utf-8 import xmlrpc.client def post_blog(): # エンドポイント(ブログサービス毎に固定) server_url = 'http://blog.fc2.com/xmlrpc.php' # ブログID FC2の場合はURLのサブドメイン部分 # 例) http://[この部分だよ].blogxxx.fc2.com/ blog_id = '[この部分だよ]' # ログインに使っているID(メールアドレス)とパスワード username = 'xxxxx@xxx.xxx' #mail password = 'xxxxxxxxxx' server = xmlrpc.client.Server(server_url) entry_id = server.metaWeblog.newPost( blog_id, username, password, { 'title': 'TITLE - タイトルだよ', 'description': 'TEXT - 本文だよ', }, True ) print(entry_id) return entry_id if __name__ == "__main__": post_blog() |
このコードをコピペし、IDやらパスワードを書き換えてください。そして記事のタイトルと本文を書き換えて実行して見てください。その後、ブログを確認して更新されていれば成功です。
今回は記事投稿関数としてpost_blog()というのを書きましたが、これの戻り値が記事IDになっています。そのため、これをDBに登録するなりし、その後の記事管理にご利用ください。
おわりに
参考にさせてもらったサイトさんはPython2.x系だったので3.x系のコードを書きました。と言っても2.xから変わる部分をリファレンスを見つつ書き換えただけです。
そんなわけで、必要最最低限の内容だけ書かせてもらいました。
「Python で fc2ブログに投稿する」