Category Archives: WordPress API

Setup TinyWebDB API

WordPressは人気のCMSであり、サーバセキュリティ、パフォーマンスチューニング、スケールアップ、クラウド対応など沢山ノウハウが蓄積された。WordPressに API機能を追加して、クライドとして利用する方法を試み。

WordPressとApp Inventorの連携

App InventorはAndroidのApp作りに簡単な環境である。そのTinyWebDBコンポーネントは、TinyDBのWeb版といったものです。タグをつけてメッセージをサーバーに保存したり、サーバーにタグ名を送信してその値を受け取ったりすることができます。あらかじめTinyWebDBにあわせてサーバー側にプログラムを用意し、そこにアクセスする形で処理を用意しなければいけません。

WordPressは人気のCMSであり、サーバセキュリティ、パフォーマンスチューニング、スケールアップ、クラウド対応など沢山ノウハウが蓄積された。WordPressをWebコンテンツを作るに最適な環境。WordPressサイトは、App InventorのTinyWebDBサービスとして利用できるか?

答えはYes.

WordPress に TinyWebDB API

WordPressに API機能を追加して、クライドとして利用する方法を試み。

WP-TinyWebDB-APIは、両者の長所を連携し、WordPressをAppInventorのTinyWebDBサービスとして利用するためのAPIを、WordPressのプラグインとして提供したもの。

本章は、WP-TinyWebDB-APIのインストール、Postman を使ってAPIの動作確認, そして第9章のWebデータベースに応用する検証を行う。

WP-TinyWebDB-APIのインストール

公式サイトを利用する

  1. FTPツールでtinywebdb-api ディレクトリー全体を WordPress の pluginsフォルダーにコピーして下さい(/wp-content/plugins/).

  2. FTP the entire tinywebdb-api directory to your WordPress blog’s plugins folder (/wp-content/plugins/).

  3. 管理パネルの「Plugins」タブ上のpluginを有効化してください。

  4. Activate the plugin on the “Plugins” tab of the administration panel.

Postman を使ってAPIの動作確認

サイトをブラウザーで開くと、普通のWordPressのサイトに見える

http://tinywebdb.ai2.work/

追加したAPI機能をみる。(これをTinyWebDBのServiceURLにセットする)

http://tinywebdb.ai2.work/api

http://tinywebdb.ai2.work/api/getvalue/?tag=questionsChenLab

image

ブラウザから取得したデータは、少々見にくい。PostmanというChrome の拡張を使うと、便利。認証、パラメタ引き渡しもできる。

image

データの送信

http://tinywebdb.ai2.work/api/storeavalue/

Webデータベースのアプリで検証

第9章のアプリから、上記のAPIへアクセスして見た。

問題なく、問題が保存できる。

image

ブラウザーからも、保存したデータの確認できる。

image

 

WP- REST-API(v2) Setup

WP4.4 からの WordPress の oEmbed ブログカード埋め込み処理でも一部使われていましたが、wp4.7 からWordPressで REST API が広く有効化されたらしく、試してみる。

まず、プラグインで導入する必要ない、デフォルトで有効になっています。

エンドポイント

試しに、サイトのURLにwp-json/を足して、v1のエンドポイントへアクセスしてみると、たくさんの文字が出力される。

http://xie.mki.biz/wordpress/wp-json/

ここで、Chromeの拡張機能のPostmanを導入して、データを見る

postman

v1より大分長くなり、なんだろう。v2から、エンドポイント変わったね!

先人のブログを参照し、Postsだけ見るにと、出力だいぶ減り

http://xie.mki.biz/wordpress/wp-json/wp/v2/posts

Postmanからデータを見る

image

この画面はなぜかGetのした、Authorizationの表示が出って。認証すると、もっと機能が増える?

認証に関して

認証に関して、v1と変わらないみたい

このAPIにおいては、認証にはいくつかの選択肢があり、基本的に以下のように選びましょう。

  • そのサイトで有効化されたテーマやプラグインから利用するのであれば クッキー認証
  • デスクトップアプリ、ウェブアプリ、モバイルアプリなどのサイトの外からアクセスするクライアントから API を利用するのであれば OAuth 認証, アプリケーションパスワード または ベーシック認証

 

OAuth 認証は複雑なので、しかもv1.0 (OAuth 1.0a specification) の難しい方だ。まず開発段階ではベーシック認証が便利でしょう。

ベーシック認証とアプリケーションパスワードは、HTTP Basic Authentication (published as RFC2617) を利用しており、Basic Auth plugin または Application Passwords plugin のどちらかを有効化する必要があります。

ベーシック認証を使用するには、ユーザー名とパスワードをリクエストごとにAuthenticationヘッダーで送信するだけです。この値は認証のたびにBase64エンドコードでエンコードされるべきです。

TinyWebDB API 0.2.2 Release

TinyWebDB API 0.2.2 Released.

Release Note

Re-write code with oo-calss style. and change from full get_post object to post_content only.

WordPress Plugin

AppInventor TinyWebDB Demo App

Change Log

0.1.0

Start TinyWebDB API plugin.

0.1.3

First alpha release which implemented Get Value Action.

0.2.0

Release which implemented Get Value Action with API Key. Add test URL on admin menu.

0.2.2

Re-write code with oo-calss style.

WP- REST-API 入门

1.首先需要在你的wordpress里所需要安装的插件

①  WP REST API

2.编辑完所有用户之后,需要去下面这个地址下载插件,帮助认证(授权)用户

https://github.com/WP-API/Basic-Auth

3.在这个网址里下载软件名Postman(导出用户的数据用)

https://chrome.google.com/webstore/category/apps

在GET开始的地方添加你的wordpress的网址加users(用户)

例如:我的网址http://tinydb.host/lxx0614/wp-json/users

点击Authorization(授权)在它下方 Type选择Basic Auth(基本认证)

然后输入用户名和密码

 

最后点击 send    哇哦~你成功了吗~用户数据就这样被你导出来了、你真棒!

提取单个用户的方法:

http://tinydb.host/lxx0614/wp-json/users/加要提取的ID号

例如http://tinydb.host/lxx0614/wp-json/users/4

Enhanced photoblog

Project Title. Enhanced Photo Blog publisher

Elevator Pitch. “Easy Photo Blog publisher” is easy way to make a photo blog to own WordPress site, this cloud app enhanced with addtional post viewer, custom Auth UI with base64 encode implement.

Description.
The Easy Photo Blog publisher is a mobile app that make easy to publish a post with photo to self hosted WordPress site.  Enhanced Photo Blog publisher was enhanced with following funtions:

  1. A post viewer for you browse recent posts.
  2. A custom Auth UI let you manage a WordPress REST API service lists.

The app’s social benefit comes from its ability to make a quick post, and improve later, give a motivation to help user more publish. Also this a good example to use WordPress REST API.

2015-12-11 13.51.55

Download and Test. Because this is a app using WordPress REST API, the only way to fully test its functionality would require using the WordPress REST API powered Blog site. You can feel free to use my test site. To download the app, scan the QR code to the left with the MIT AI2 Companion app or some other Scanner or click on this download link.

PhotoBlog2_V2-download

a screen shot show a post on WordPress REST API powered Blog site.

2015-12-11 13.54.22
Technical Description. As shown in this screenshot, the app exceeds the project’s minimum technical requirements. It contains 2 global variables, 4 list data, 2 procedures or functions, and 2 if/else structure.

PhotoBlog2-blocks2

Appendix.

WP REST API web service

The WP REST API is a WordPress plugin that intends to be eventually integrated into WordPress’ core as another (big) step towards transforming WordPress from a blogging platform/CMS into a fully fledged application framework.

To start a service, you have own a own WordPress site, and use 2 plugins:

  1. WP REST API plugin, install and active (schedule uptake to core WP 4.4 and WP 4.5)
  2. BASIC Auth plugin, git clone https://github.com/WP-API/Basic-Auth basicAuth,  and active.

 

tinywebdb-base64 web service

WP REST API provide OAuth 1.0a and Basic Auth algorithm. Currently it is no way to use OAuth 1.0a on App Inventor, so I use Basic Auth on this app. Because , I create a tinywebdb-base64 program, which use App Inventor Tinywebdb feature to get value = base64_encode(tag) . You need install tinywebdb-base64 program on your server and set URL to program. You can feel free to use my tinywebdb-base64 web service.

Photoblog

Project Title. Easy Photo Blog publisher

Elevator Pitch. This cloud app pickup a photo from device’s image gallay, save the photo on self hosted WordPress site as a media file,and create a post with the media file attachement.

Description.
The Easy Photo Blog publisher is a mobile app that make easy to publish a post with photo to self hosted WordPress site. To make a post, user could follow steps:

  1. Type the post title
  2. Pickup a photo from device’s image gallay.
  3. Press “Post to madia” button to save the photo on WordPress site as a media file
  4. Type the post main content
  5. Press “Post Blog” to create a post with the media file attachement.

the app is easy way to make a photo blog to own WordPress site.

The app’s social benefit comes from its ability to make a quick post, and improve later, give a motivation to help user more publish. Also this a good example to use WordPress REST API.

screen1

Download and Test. Because this is a app using WordPress REST API, the only way to fully test its functionality would require using the WordPress REST API powered Blog site. You can feel free to use my test site. To download the app, scan the QR code to the left with the MIT AI2 Companion app or some other Scanner or click on this download link.

apk-download

a screen shot show a post on WordPress REST API powered Blog site.

2015-12-10 07.51.15
Technical Description. As shown in this screenshot, the app exceeds the project’s minimum technical requirements. It contains 2 global variables, 4 list data, 2 procedures or functions, and 2 if/else structure.

blocks2

Appendix.

The WP REST API is a WordPress plugin that intends to be eventually integrated into WordPress’ core as another (big) step towards transforming WordPress from a blogging platform/CMS into a fully fledged application framework.

WP REST API provide OAuth 1.0a and Basic Auth algorithm. it is no way to use OAuth 1.0a on App Inventor, so I use Basic Auth on this app. Basic Auth use base64 encode and not way to do on App Inventor, so on this app, just use a global variable to store a text which already encoded auth text.

TinyWebDB for App Inventor Sample Project

App Inventor Sample Project

New Project

Start a new project from Project menu.

Put TinyWebDB component on screen and set ServiceURL to your WordPress Server with TinyWebDB API available.

Behavior Design

Put TinyWebDB component on screen and set ServiceURL to http://tinywebdb.ml/api

(or your WordPress Server with TinyWebDB API available)

スクリーンショット 2016-11-02 15.19.36

  • GetValue : get TinyWebDB value from WordPress server and set to TextBox.
  • StoreValue : Store TextBox  value to WordPress Server TinyWebDB plugin.

 

Programming

  • GetValue : get TinyWebDB value from WordPress server and set to TextBox.
  • StoreValue : Store TextBox  value to WordPress Server TinyWebDB plugin.

スクリーンショット 2016-11-02 15.19.11

Download

Download TinyWebDB Demo Code available on github.

下記のDownloadから、App Inventorで作ったAndroid test app サンプル を参考に、 ご自分のappを作る.

https://github.com/edu2web/TinyWebDB_Tester

tinywebdbdemo.aia is a minimal App Inventor project for WordPress TinyWebDB API Test.

注意点として、APIのURLは、最後の”/” を削除しでください。

Refer to Plugin URI to get sample Android test app which make by App Inventor, to create your own app.

Be sure to remove “/” on the tail of URL.

You need a WordPress Server with TinyWebDB API available, you can use my test server http://tinywebdb.ml/api , or install and setup your server follow steps on https://wp-api.net/tinywebdb-api/ .

Related links

WP- REST-API Setup

To Preparation WordPress wp-api,  you have three setup steps:

  1. JSON REST API
  2. Authenticate
  3. Permalink

JSON REST API

Grab the latest version of JSON REST API on WordPress plugin directory. Install and activate it.

Authenticate

There are three ways you can authenticate.

Using the cookies

This is one method not widely used when working with APIs. When a user navigates on the web, pages tend to store data on users side. The cookie method here is a bit different by using the nonces method.

OAuth

This plugin implements the version 1.0a of OAuth. This method is widely used. Google, Facebook, Twitter and Flickr use OAuth for third party authentication.

Basic Authentication

Using this method you have to send your username and password each time you make a request. Client tools for REST testing usually have this method implemented themselves. This method is mainly used when developing. Is rarely used on production. On production consider using OAuth.

the Basic Authentication plugin only on it’s GitHub repository.

git clone https://github.com/WP-API/Basic-Auth basicAuth

Permalink

Change the permalink configuration to any other that not default.