三題噺っぽいタイトルだけど、はまったのでメモ。

Wordpressは外部から記事を操作する仕組みとしてXMLRPCが提供されている。XMLPRC経由とはいえど、記事を操作するときにはユーザIDとパスワードを指定する必要がある。

Wordpressに標準設定されている権限を強い方から順番に……

  1. 管理者 / admin …… すべてOK(ユーザ作成やテーマ編集)
  2. 編集者 / editor …… カテゴリ編集、記事の編集(他人のものも)、コメントの承認ができるようになる
  3. 作成者 / author …… ファイルアップロードと記事の編集/公開ができるようになる
  4. 投稿者 / contributor …… 記事の作成/編集(公開はできない)ができる
  5. 購読者 / subscriber …… 読者

正直、管理者の権限はまだ理解できるけど、編集者/作成者/投稿者の権限は字面を読んだだけでは理解できなかった。大まかな整理は上記で大丈夫なはず。詳細についてはWordpress Codexを参照。

そして、もちろんXMLRPCで投稿するときも権限が関係してくる。XMLRPCから投稿して公開させるにはpublish_postsに対する権限が必要になってくるので権限:作成者(author)以上のユーザで使う必要があり。

権限が足りない場合、XMLRPCでエラーのリターンコード:401が帰ってくる。ただ、公開されている記事を取得する場合(metaWeblog.getPost)とかでも、権限的には購読者(subscriber)以上であれば問題の無いはずなのに、リターンコード:401。

時間の都合上 深く追っかけることができずに、XMLRPCを操作するユーザIDに管理者(admin)権限を割り当てて解決させてしまった。

SSLを使用していないのでパスワードが漏れて~とか考えたのが原因。仕事であればきっちりと権限を絞る&セキュアである必要があるけど、金銭が絡まないし消されたとしても趣味でやっている範囲なので、なにがあっても別段に問題はないので今回の対応でOKとしたい。

ユーザーの種類と権限
http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90

Roles and Capabilities
http://codex.wordpress.org/Roles_and_Capabilities

XMLRPCで日付がうまく更新できなかった件について。

恥ずかしながらケアレスミスでした。

xmlrpcのdateCreatedパラメータに対して変数で日付を指定していたところが、変数名が間違えていたため正しい値で代入できなかった様子。

20080508T12:31:00 (最後にZはつかない)の方法でバッチリと日付指定ができるようになりました。

WordpressとXMLRPC

2008年05月09日 1 Comment

分からないこと。

  • 日付の指定方法。20080508T12:31:00Zとか2008-05-08T12:31:00Z?
  • カスタマーフィールドへの挿入

ちょっと試行錯誤してみよう。