スマートフォン・タブレットからインターネットサーバーオペレーション 2016

APPW.jp 2016

python-wordpress-xmlrpc ライブラリで投稿

python-wordpress-xmlrpc ライブラリを利用して、Python プログラムから Wordpress にメディアアップロードと記事投稿を試してみます。Wordpress の xmlrpc.php を通して行います。

https://python-wordpress-xmlrpc.readthedocs.org/en/latest/ に、インストールからサンプル、リファレンスなどのドキュメントが公開されています。

このドキュメントなどをもとに、サンプルファンクションを作成してみました。


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import mimetypes
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.compat import xmlrpc_client
from wordpress_xmlrpc.methods import media, posts

def WPpost(title, category, message,
        filepath, filename):

  wp_xrurl = 'http://example.jp/xmlrpc.php'
  wp_uname = 'username'
  wp_pword = 'password'
  wp = Client(wp_xrurl, wp_uname, wp_pword)
    
  fname = '{path}/{name}'.format(
          path=filepath,
          name=filename)

  data = {
          'name': filename,
          'type': 'image/jpeg',
          'overwrite': True
  }

  data['type'] = mimetypes.guess_type(fname)[0]

  with open(fname, 'rb') as img:
    data['bits'] = xmlrpc_client.Binary(
            img.read())
  response = wp.call(media.UploadFile(data))
  attach_img = response['url']

  post = WordPressPost()
  post.title = title
  post.content = \
      '<p>'+message+ \
      '</p><img src="'+attach_img+ \
      '" />'
  post.terms_names = {
      'category': [category]
  }

  post.post_status = 'publish'
#  post.post_status = 'draft'
    
  post_id = wp.call(posts.NewPost(post))
    
  return post_id
    

サンプルファンクションでは、メディアをアップロードしたときに返されるアップロード先を、コンテンツに付け加えて投稿し、投稿ID を戻しています。

これまで、MQTT Publish の内容を MongoDB に保存してみるなどの Python プログラムを作成してきましたが、今回はさらに、Wordpress の投稿にもつなげています。

image

Python Pillow でサムネイルを作成

Tornado で Secure Websocket を試します

Python Pillow でサムネイルを作成
WordPress Shortcode で HTML コードを表示
WordPress Shortcode を SVG Fallbacks で試します
Tornado で Secure Websocket を試します

MYCODEは、唾液を採るだけで最大280項目の病気と体質の遺伝的傾向がわかる、遺伝子検査キットです。

わたしたちの遺伝子から健康のためのヒントを見つけよう【MYCODE】

新スマホがぞくぞく登場!ラインアップ充実。UQなら家族割で新規2台目以降1,480円/月~、乗り換える方が増えています。

auネットワークで月々980円(税抜)~!【UQ mobile】

最短4週間で未経験からプロを育てるオンライン完結のスクールです。自宅でもプログラミングやアプリ開発を学ぶことができます。受講生に1人ずつ現役のプロのパーソナルメンターがつきます。

未経験からプロのエンジニアを育てるオンラインブートキャンプ

新幹線/有料特急の往復チケットとホテル/旅館の宿泊がセットになったお得な旅行プランを掲載。家族・夫婦旅行/イベント/女子旅/一人旅/出張に便利!

オトクな「新幹線+ホテルセットプラン」を検索!

コストパフォーマンスの高いレンタルサーバーラインナップと、自由度の高いVPS(KVM)から選べます。

お名前.comの高性能VPS

現役エンジニアによるプログラミング家庭教師サービスです。オンライン上でマンツーマンでレッスンが受けられるので、いつでもどこからでも学習ができるのが最大の特徴です。

オンラインプログラミング研修のCodeCamp

最短即日発行の「ドメイン認証SSL」のほか、「EV SSL」や「企業認証SSL」などの信頼性の高いSSL証明書も業界最安水準にて提供しています!また、無料で使えるSSL証明書にも対応しています。

格安SSL証明書サービス、SSLボックス

高速なSSDも選択でき、複数台構成も可能。スモールスタートしたい方や手軽な開発環境がほしい方におすすめな、柔軟さが特長の仮想専用サーバーサービスです。

選べるプランとOS!さくらのVPS

家でも外でもインターネット!モバイルルーターは持ち歩き可能。工事不要!回線を引く時間もお金も不要。即時開通!端末が届けばすぐに利用可能。

超速モバイルネットWiMAX 2+!!ニッポンを、超速へ。