Wordpress über JSON Api mit Facebook Page oder Tumblr befüllen
Erstellt um 12:35 von DI Edmund HaselwanterIn diesem Beispiel zeigen wir die Installation von Wordpress in einem Ubuntu LAMP Stack. Weiters wird das JSON-Api Plugin für Wordpress und ein Theme installiert. Danach wird mit Mechanize der Wordpress Blog automatisch installiert und konfiguriert. Anschliessend erzeugen wir noch Einträge im Wordpress Blog indem wir Postings von einer Facebook Page und von einem Tumblr Blog über deren API abfragen und mit der JSON Wordpress API dem Blog hinzufügen.
Grundlage ist hier die schon bekannte Wordpress Installation aus den vorangegangenen Beispielen.
Dieses mal möchten wir aber Version 3.1 von Wordpress installieren. Dazu kann man eine der tollen Funktionen der automatisierten Installation mit Chef verwenden. Die Versionsnummer von Wordpress ist ein Parameter. Im Vagrant Konfigurationsfile können wir hier einfach den gewünschten Wert setzen:
1 config.chef.json.merge!({
2 :mysql => { ... },
3 :wordpress_hostname => "wordpress.smackaho.st",
4 :wordpress => {
5 :version => "3.1",
6 :checksum => "297dbd014f3688b6d57329eb2988cb906fbdb1fadea33768d4584f9cbf090794"
7 }
8 })
Die Wordpress Installation wird nun noch um das wundervolle Wordpress Plugin JSON-Api und das freie Wordpress Theme Paragram erweitert. Dazu wird unser Wordpress Cookbook einfach um den jeweiligen Code erweitert.
Das lässt sich sehr einfach mit den remote_file und execute Chef Ressourcen bewerkstelligen
1
2 remote_file "#{Chef::Config[:file_cache_path]}/json-api.1.0.7.zip" do
3 source "http://downloads.wordpress.org/plugin/json-api.1.0.7.zip"
4 mode "0644"
5 end
6
7 execute "unzip-json-api" do
8 cwd File.join(node[:wordpress][:dir],"wp-content/plugins")
9 command "unzip #{Chef::Config[:file_cache_path]}/json-api.1.0.7.zip"
10 creates "#{node[:wordpress][:dir]}/wp-content/plugins/json-api/readme.txt"
11 end
Damit machen wir einen Download des Plugins und des Themes und entpacken es in das Wordpress Verzeichnis.
1 $ vagrant up
Wenn man nun die Seite http://wordpress.smackaho.st:4567/wp-admin/install.php besucht kann man wie gewohnt die Einstellungen vornehmen.
In diesem Fall möchten wir aber diesen Teil überspringen und werden automatisch ein Setup ausführen:
1 ruby setup_wordpress.rb
im Verzeichnis der Demonstration einfach ruby setup_wordpress.rb eingeben. Damit werden die notwendigen Einstellungen für diese Demonstration ausgeführt. Dieses Script verwendet Mechanize um in einer Web-Session die HTTP Aufrufe, die man normalerweise über einen Browser macht, auszuführen.
Es wird zuerst ein Login gemacht, dann Kategorien hinzugefügt, Plugins aktiviert und Plugin Einstellungen gesetzt.
Im Anschluss daran verwenden wir die JSON API. Auf der Ruby Seite verwenden wir das Gem Restclient um die JSON Payload zu erzeugen.
1 ruby importer.rb
Zuerst erzeugen wir einen einfachen Eintrag mit einem Bild als Attachment. Dann fragen wir über die API von Tumblr unsere Tumblr Postings ab und erzeugen in einer Schleife die Aufrufe über die JSON API. Dann folgt noch ein Beispiel mit der Facebook Graph API. In einer Schleife arbeiten wir die Postings einer Facebook Page ab, und erzeugen eine dem Posting Typ entsprechende JSON Payload (Wobei wir hier auch Postings des Typs Photo bearbeiten und das verknüpfte Photo als Attachement erzeugen).
Weitere Artikel die Sie interessieren könnten:
Deployment von Java Web Applikationen mit Chef von OpscodeThere is a rework of the data driven deployment of java web applications. This Vagrant project on github ( https://github.com/iteh/vagrant-demos/ ) showcases the application cookbook for chef with a reworked application definition and LWRP for...
Links der Woche vom 2011-05-23 bis 2011-05-29Diese Woche Links zu den Themen Windows, Ruby, opscode, JavaScript, maps, Leaflet, WordPress, Chef, windows, powershell, opschef, ios, ruby, devops, sysadmin, monitoringsucks
Links der Woche vom 2011-05-16 bis 2011-05-22Diese Woche Links zu den Themen coffeebeans, Rails, CoffeeScript, Array, Ruby, Chef, Django, zo, devops, sysadmin, git, chef, CSS3, HTML5, WordPress, nipplegate, MongoDB, rails, rails3, asciicast, test, Android, opschef, Gem, aws, slim, Haml, ruby
Links der Woche vom 2011-05-09 bis 2011-05-15Diese Woche Links zu den Themen wi, opschef, ActiveAdmin, rails, ror, ruby, HTML5, Chef, cnet, MongoDB, Sinatra, Rack, apple, git, aws, chef, opscode, sysadmin, Ksplice, noSQL, RubyTutorials, CSS3, EC2, AWS, MacRuby, iOS, m
Links der Woche vom 2011-04-25 bis 2011-05-01Diese Woche Links zu den Themen op, oschef, opscode, LWRP, Noah, chef, devops, opschef, rails, gem, railscast, Chef
Links der Woche vom 2011-04-18 bis 2011-04-24Diese Woche Links zu den Themen rails, gem, opscode, git, ec2, gluster
Links der Woche vom 2011-04-11 bis 2011-04-17Diese Woche Links zu den Themen ipad, iphone, opschef, ruby, OpenCV, detection, image, Weinberg, Ohai, automation, pr, test, gem, cloudfoundry, devops, cfoundry
Data Driven Deployment einer Java Web Application mit Chef SoloChef Application Cookbook Showcase Dieses Vagrant Projekt auf unserem Github Repository ( https://github.com/iteh/vagrant-demos/ ) zeigt die Verwendung des Application Cookbooks für Chef
Links der Woche vom 2011-04-04 bis 2011-04-10Diese Woche Links zu den Themen Pow, Rack, ActiveRecord, Rails, Algorithms, Ruby, rails, optimize, CSS3, railscasts, chat, macbook, opschef, ruby
Links der Woche vom 2011-03-28 bis 2011-04-03Diese Woche Links zu den Themen design, utilities, rails, asciicast, gem, ux, Awesome, jQuery, devops, Git, radiantcms, rvm, opschef, osx, MacRuby, chef, opscode, Rails, i18n, java, Vagrant, automation, Typography, Type


