Milkcocoa Python SDK を試す.

Milkcocoa というBaaS がある.

Cloocaでいつもお世話になっている, Technical Rockstarsさんのサービスです.簡単にデータをストアできるサービスなのです.

Python のSDKもあるのです.

開発スピードがとても速く,Javascript意外にも様々なSDKを提供してくれています.その中からPythonのSDKを使ってみようと思います.

環境構築

手元の環境で作っていきます.Ubuntu14.04で試しています.

Virtualenvで環境作り

$ mkdir mlkcca && cd mlkcca
$ virtualenv python27

mlkcca ディレクトリを作成し,そこにpython27という名称で仮想環境を作ります.

SDKをダウンロード

$ git clone https://github.com/milk-cocoa/python_sdk.git

githubから最新コードをダウンロードします.

ソースのパスを通します.

環境に python_sdk/src のパスを通して,利用できるようにします.

$ echo 'フルパス/mlkcca/python_sdk/src' >> ~/develop/mlkcca/python27/lib/python2.7/site-packages/mlkcca.pth

site-packages ディレクトリに pth ファイルを置きます.

SDKのインポート確認

(python27)$ python
>>> import milkcocoa
>>> milkcocoa.__version__
'1.0'

インストールできました.

Milkcocoaへデータの登録

MilkcocoaのWebサイトで,Appをtk1という名称で作成をしました.また,API Key認証をするためにキーを一つ発行してあります.milkcocoaの設定とかはQiitaとかを参照してください.

どこにでも有るネタですが,RSSを読み込んでmilkcocoaへ登録したいと思います.

feedparser インストール

(python27)$ pip install feedparser

pip でインストールします.

プログラム

ファイル名を read_rss.py として, 以下のように書きました.

# encoding: utf-8

from argparse import ArgumentParser
import feedparser
from milkcocoa import milkcocoa as mlkcca


def get_rss(url):
    """
    RSS取得
    
    :param str url: RSSのURL
    :return: RSSの辞書オブジェクト
    :rtype: dict
    """

    return feedparser.parse(url)


def add_record(url, link, title):
    """
    milkcocoaへデータの登録
    
    :param str url: RSSのURL
    :paran str link: 記事のアドレス
    :param unicode title: 記事のタイトル
    """

    mlk_cnt = mlkcca.Milkcocoa.connectWithApiKey('{app_id}', '{API Key}', '{API Secret}', useSSL=False)
    rss_ds = mlk_cnt.datastore(u'rss')
    rss_ds.push(dict(url=url, link=link, title=title))


if __name__ == '__main__':
    parser = ArgumentParser(description='Add RSS to the Milkcocoa Datastore')
    parser.add_argument('-i', '--rss_url', 
                        type=str, required=True,
                        help=u'RSS URL')
    args = parser.parse_args()
    url = args.rss_url

    result = get_rss(url)
    
    for entry in result.entries:
        link = entry.link
        title = entry.title
        add_record(url, link, title)

    print('Done')

このスクリプトは,-i オプションでRSSを取得したいアドレスを指定します.

始めに get_rss 関数でfeedparserにアドレスを渡しRSSデータの取得をします.次に,結果のentriesのリストをループさせ,link, titleを読み出し, add_record 関数にてMilkcocoaのデータストア: rss へレコードの登録をしています.

実行

(python27)$ python read_rss.py -i http://www.nihonkiin.or.jp/news/atom.xml
Connected with result code 0
Connected with result code 0
Connected with result code 0
Connected with result code 0
Done

Done を確認. Connected with result code 0 は,MQTTのライブラリが出力しているみたいです.

登録の確認

MilkcocoaのDashboardへアクセスして確認してみます.

  • Dashboard > データストア へ進むと.

レコードが4件登録されてました.

おわりに

このように簡単にデータを登録できることが確認できました.以上,Python SDKの紹介でした.