Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ニフティクラウド mobile backendのpythonモジュールを使って見る

More than 5 years have passed since last update.

ncmbのpythonモジュールがあるらしい・・・

先日のハッカソンでこの話しを聞き、早速使ってみようと思った次第
詳しくはいかにある・・・
http://petitviolet.hatenablog.com/entry/20141011/1413037537

pipインストール

前にやったことがある方法で下記のコマンドを打ってみたがうまくいかず

curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

結局このサイトに載っている

$sudo apt-get install python-pip

でpipインストールを行える状態にした。

しかし、バージョンの問題でインストールできない・・・
そもそもラズパイのPythonバージョンをあげる

ラズパイのバージョンを2.7.7にアップデート

アップデートはこの記事を参考に行った

以下のコマンド群を入力することでバージョンアップを図った

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev 
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
cd ~
wget https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz
tar -zxvf Python-2.7.7.tgz
cd Python-2.7.7
./configure
make -j 4
sudo make install

アップデート後は再起動

sudo reboot

再起動後はバージョンを確認

python -V

と打つと

Python 2.7.7

とでて正しくインストールできていることがわかる

pipの再度インストール

wget https://bootstrap.pypa.io/get-pip.py
sudo python2 get-pip.py

これでpipの準備を行える

ncmbのpythonモジュールのインストールと準備

sudo pip install py_nifty_cloud

また、初期化(シグネチャ生成)のための準備。このモジュールはyamlファイルアプリケーションキー、クライアントキーを読み込むようになっているらしいのでそれを準備する。
下記のような形で・・・

nifty_cloud.yml
APPLICATION_KEY: 'your application key'
CLIENT_KEY: 'your client key'

データベースに書き込みを行う

データベースへの書き込みのコードは下記のように書く

ncmb_post.py
#import
from py_nifty_cloud.nifty_cloud_request import NiftyCloudRequest

# instanciate with yaml file contains APPLICATION KEY and CLIENT KEY
ncr = NiftyCloudRequest('./nifty_cloud.yml')
path = '/classes/TestClass'
method = 'POST'

# post a new recode
values = {'key': 'test'}
response = ncr.post(path=path, query=values)
print(response.status_code)

実行すると下図のようになる
スクリーンショット 2015-10-04 21.21.39.png

また、コマンドの画面で下記のような警告が出る

InsecurePlatformWarning

どうしてもでてしまうものらしい・・・

データベースから値を引き出す

同様に引き出すコードは下記

ncmb_get.py
#import
from py_nifty_cloud.nifty_cloud_request import NiftyCloudRequest

# instanciate with yaml file contains APPLICATION KEY and CLIENT KEY
ncr = NiftyCloudRequest('./nifty_cloud.yml')
path = '/classes/TestClass'
query = {'where' : {'key': 'test'}}
method = 'GET'

# standard way to request
# get recodes which matches a query from path, with GET or POST or PUT http method
response = ncr.request(path=path, query=query, method=method)
type(response)
# >>> requests.models.Response

# show status code
print(response.status_code)
# show response as json format
print(response.json())

結果は以下

200
{u'results': [{u'key': u'test', u'createDate': u'2015-10-04T12:17:49.729Z', u'updateDate': u'2015-10-04T12:17:49.730Z', u'objectId': u'mVgYUeowLXFuEQ0R', u'acl': {u'*': {u'read': True, u'write': True}}}]}
JinTech
システム開発のサードプレイス(会社でも個人でもない第三の場所)を求めるエンジニアが集まるチーム。サービス開発、スキルアップ勉強会を実施。
http://web.jintech.team/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away