We’ve migrated our documentation to a new site, which means some URLs have changed.
Audience

cx.pyツールのインストール

はじめに

Piano Insight UI: カスタムワークスペースは強力なウェブベースのツールですが、ここではそのベースとなっているPiano Insight APIをコマンドラインから直接実行する方法について説明します。

Piano Insight APIをコマンドラインから使用するためには、まずPythonスクリプト cx.py をダウンロードしてください。このスクリプトを実行可能に設定し、パスの通っているディレクトリに置いておくと便利です。

cx.py スクリプトを実行するには python 2.7.6 またはそれ以降のバージョンが必要です(3.xも対象です)。

リソース

  • Piano Insight APIを使用したサンプルや例がこのWiki内の随所に掲載されています。"cx.py"で検索してみてください。

  • Piano Insight APIはJSON形式でデータをやり取りします。オープンソースの jq ツールを使ってフィルタや、ハイライト、レスポンスデータの形式変換を行うことができます。

  • jqを用いてCSV出力する方法をこちらに掲載しています。

設定

このスクリプトは、ホームディレクトリに置かれた.cxrc にAPI認証キーが記載されていることを前提としています。このファイルを作成し、以下のように記載をしてください:

$ # This file should be in your home directory. Replace the
$ # example credentials below with your own.
$ cat .cxrc
authentication john.doe@example.com api&user&12345678asdfghj123456

上記の例のメールアドレスを実際にPiano Insightに登録したユーザのアドレスに、またAPIキーもそのユーザに紐付いたものに置き換えてください。APIキーはPiano Insightにログインし、右上に表示されているユーザ名をクリックすると表示されます。

APIでのアクセスは別途権限設定が必要なため、デフォルトではAPIキーは表示されません。権限の付与は貴社のユーザ管理者の方にご依頼ください。ユーザ管理者が不明の場合はPianoサポート support@piano.io 宛にご連絡ください。

使用方法

APIを実行し、上記の設定が正しいことを確認します。

以下の例における $ の文字はコマンドラインプロンプトを示すものであり、コマンド実行の際にタイプしないでください。

Linux および OS X

LinuxまたはOS Xを使用している場合には、可読性のためにシングルクォートとダブルクォートとを使用してください。

$ # Example API call using cx.py. Replace the example
$ # site identifier with one you have read access to.
$ python cx.py /site '{"siteId":"123456789"}'

上記の例のsiteIdは実際のものに置き換えてください。

Windows

Windowsをお使いの場合には、コマンドラインの引数にダブルクォートを用いて、引数の内部のダブルクォートはバックスラッシュでエスケープしてください。

$ python cx.py /site "{\"siteId\":\"123456789\"}"

上記の例のsiteIdは実際のものに置き換えてください。

Windowsでは下記のcxpy.batスクリプトが便利です。このスクリプトはWindows特有のパラメータの問題を回避して、最後にcx.pyをコールします。これをパスの通ったディレクトリに置いておくことにより、上記の例で python cx.py ではなく単に cxpy を実行することができます。

@ECHO OFF
FOR /f "tokens=1*" %%a in ("%*") DO (
    SET thepath=%%a
    SET therest=%%b
)
call :strlen therestlength therest
IF %therestlength% == 0 (goto :GETREQUEST) else (goto :POSTREQUEST)
 
:GETREQUEST
python -m cx %thepath%
goto :END
  
:POSTREQUEST
SET thequotedrest=%therest:"=\"%
IF /i "%thequotedrest:~0,1%" EQU "'" SET thequotedrest=%thequotedrest:~1,-1%
python -m cx %thepath% "%thequotedrest%"
:END
  
:strlen <resultVar> <stringVar>
(  
    setlocal EnableDelayedExpansion
    set "s=!%~2!#"
    set "len=0"
    for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
        if "!s:~%%P,1!" NEQ "" (
            set /a "len+=%%P"
            set "s=!s:~%%P!"
        )
    )
)
(
    endlocal
    set "%~1=%len%"
    exit /b
)


Last updated: