2016.01.30 Sat

第1回WordBench山口

Googleカレンダーの

情報をプログラムで
WordPressに

投稿してみた

お約束

この発表は個人的な物で

仕事や所属等は全然関係ありません。

 

誤記や間違い等あればご指摘頂けると

助かります。
@takatayoshitake

自己紹介

@takatayoshitake

 広島を中心に勉強会に出没。
オープンソースカンファレンス広島の
お手伝いやいろんな勉強会でUstとか

やってます。(今日はやっていません)

 広島サーバユーザ友の会(仮称)や
日本CloudStackユーザ会 広島支部等も

一応やってるみたい。

・・・何もできてませんが(汗

OSC広島の公式キャラクター
「あきちゃん」

http://j.mp/osc14hiaki

広島IT勉強会カレンダー(仮)の更新もしてます。

発表に入る前に

会場のみなさんに質問

WordPressの画面以外から

プログラム等を使って自動で

記事を投稿した事が?

 

A. ある

B. ない

全員やったことがあったら

終了

 

一人でもやった事が無い方が居られたら続ける

WordPressに

プログラムで投稿しようと

思ったきっかけ

広島でIT勉強会カレンダーの編集をやってます。

カレンダー更新通知

カレンダー更新したら情報が

わかるようにして欲しい

Twitterで呟くようにしました

去年の発表

2015/01/10 LT駆動開発
広島IT勉強会カレンダー(仮)と
自動Tweetについて

対応後

TwitterとかSNSは
会社からはフィルタが
かかってて見れない

Web(WordPress)へ
投稿する様に試してみた

プログラムからの投稿方法

XML-RPC WordPress API Codex

Google検索
「wordpress xmlrpc ruby」

RubyからWordpressに投稿・削除・表示

 1  #!/usr/bin/ruby
 2  # coding: utf-8
 3
 4  require 'time'
 5  require 'xmlrpc/client'
 6
 7  def post(title , description)
 8    user = '(ユーザ名)'
 9    pass = '(パスワード)'
10    post = 'post'
11    date = Time.now
12    publish = 1 #0:下書き,1:公開
13
14    server = XMLRPC::Client.new('(URL)', '/xmlrpc.php')
15

 

1/3

Ruby コード例

16    struct = {
17      'title' => title,
18      'categories' => ['(カテゴリ)'],
19      'description' => description,
20      'dateCreated' => date
21    }
22
23    id = server.call("metaWeblog.newPost",1,user,pass,struct,publish)
24    puts "Posted ID: #{id}"
25
26    id = server.call("blogger.getRecentPosts", "", "", user, pass)
27    puts "#{id}"
28  end
29

2/3

30  for line in STDIN
31    cols = line.chomp.split(/\t/)
32
33  title = cols[0].split(/ /)[0] << " " << cols[2]
34
35  description = <<"EOS"
36  開始 #{cols[0]}
37  終了 #{cols[1]}
38  場所 #{cols[3]}
39  URL  <a href="#{cols[4]}">#{cols[4]}</a>
40  EOS
41
42  print title,"\n"
43  print description,"\n"
44
45  post(title , description)
46
47  end

3/3

セキュリティ設定

.htaccess 設定例

 

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from (接続元のグローバルIPアドレス)
</Files>

 

実行例

広島IT勉強会カレンダー(仮)
WordPress版

※URLは暫定のため変更となる可能性あり

せっかく山口に来たので
山口IT勉強会カレンダー(仮)
も作成してみました

Google検索
「wordpress マルチサイト サブドメイン」

複数サイト運用方法(サブドメイン型)

山口IT勉強会カレンダー(仮)

まだまだ情報が少ないので

ぜひ教えてください。

 

一緒に共同編集頂ける方募集中

 

まとめ

・WordPressはXMLRPCを使ってプログラムで投稿することができます。

・定型的な投稿は自動化して楽しよう!

・複数のサイトを一台のサーバで用意する事が出来ます。

おしらせ

第13回 中国地方DB勉強会 in 山口
開始 2016-02-27 13:00
終了 2016-02-27 17:00
場所 山口市小郡黄金町7-4山本ビル 6F

GoogleカレンダーからプログラムでWordPressに投稿してみた

By Yoshitake Takata

GoogleカレンダーからプログラムでWordPressに投稿してみた

2016-01-30(土) 13:00~16:00 第1回WordBench山口 https://wbyamaguchi.doorkeeper.jp/events/34638

  • 1,714