ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spark API との通信 このラーニングモジュールでは Python を使用した Spark API とのインターフェイスを扱います 目標 所要時間 :20 分 Python スクリプト言語を使用して REST API の呼び出しを行う方法を理解する Python を使用して Spark ルーム ( スペース ) にメッセージを投稿する 前提条件 Python サンプルコードを実行するには 使用しているマシンに Python3 がインストールされている必要があります o ワークステーションに Python3 をインストールする方法については モジュール 00 の詳細なインストール手順を参照してください ワークステーションには Python の requests モジュールをインストールする必要があります インストールの有無が不確かである場合は コマンドラインターミナルを開き Linux ベースマシンの場合は sudo python3 -m pip install requests コマンド Windows ベースマシンの場合は python -3 -m pip install requests コマンドを実行します Spark REST API へのアクセス Spark の開発者アカウントをセットアップして Spark REST API を確認できるようにします Spark の開発者 Web サイトに移動してサインアップし Spark API の呼び出しを可能にするアクセストークンを受け取ります このラボでは 開発環境をセットアップするために ご利用のコンピュータを設定する方法 のセクションにある手順についても説明します
ステップ 1:Python の概要 Python は インタプリタ形式でオブジェクト指向の言語であり ダイナミックセマンティクスに対応した高レベルなプログラミング言語です Python はシンプルで簡単に学習できる構文を採用しており コードの記述と読み取りが容易です Python では プログラムのモジュール性とコードの再利用を促進するためのモジュールやパッケージがサポートされています ここで ワークステーションに Python バージョン 3.x がインストールされ 使用可能になっていることを確認しましょう コマンドラインターミナルを開き コマンド py -3 -V を入力します ( 環境によっては python -V です ) このコマンドにより ワークステーションにインストールされている Python のバージョンを確認できます 注 :Linux または OS X の場合 コマンドは python3 -V を使用します これで Python がワークステーションにインストールされていることが確認できました
ステップ 2:Postman を使用してコードを生成する 前回のラボで Postman アプリケーションを使用して API リクエストを行う方法を示しました Postman を利用すると GUI 上で設定した API リクエストに基づいて 各種プログラミング言語に対応したソースコードを生成することができます 本セッションでは この機能を利用して Spark API を呼び出す Python のコードを生成してみましょう ここでは Postman アプリケーションがワークステーションにインストールされていて 使用方法を理解していることが前提になります まだ準備ができていない場合は 前回のラボの内容を確認しておいてください コードを生成するには API の呼び出しに必要な Postman のすべてのフィールドへの入力が必要です それでは始めましょう 1. ワークステーションで Postman のアプリケーションを開きます 2. ここでは 問い合わせを行うユーザに関連付けられているルーム ( スペース ) の一覧を取得します それには メソッドを GET に設定し URL を https://api.ciscospark.com/v1/rooms に設定します
3. 次に リクエストヘッダー情報を定義します ヘッダータブをクリックして 2 つのキーと値のペアを指定します このステップでは Spark の開発者 Web サイトから取得したアクセストークンが必要になります o Content-Type と application/json; charset=utf-8 を指定 o Authorization と Bearer {access token} を指定 4. これで Postman を使用してコードを生成する準備ができました [ 保存 (Save)] ボタンの下に [ コードの生成 (Generate Code)] リンクがあります それをクリックします [ コードスニペットの生成 (Generate Code Snippets)] ウィンドウで [Python] > [Requests] と言語を選択します 5. これで 入力した API リクエストの内容が requests モジュールを使用した Python コードに変換され API の呼び出しが可能になりました [ クリップボードにコピー (Copy to Clipboard)] ボタンをクリックしてコードをコピーします
6. クリップボードの内容を任意のテキストエディタに貼り付け 作業ディレクトリに Python ファイルとして保存します
7. 実際に確認してみてください コマンドラインターミナルを開き 作業ディレクトリに移動します py -3 <FILE-NAME.py> コマンドを実行します ( 環境によっては python <FILE-NAME.py> コマンド ) Spark サーバからのレスポンスが表示されるはずです これで Postman を使用してコードを生成する方法がわかりました 次のセクションでは コードを自分で記述する方法について説明します
ステップ 3:Python スクリプトを記述する ここでは実際にコードを記述してみます 順序に従って記述することで 最終的に API リクエストが Spark に送信され 電子メールアドレスの情報に基づいてユーザの氏名が取得されます このコードでは /people API を使用します API の詳細については こちらを参照してください 先に進む前に https://developer.ciscospark.com/ [ 英語 ] からアクセストークンを取得する必要があります 指定されたユーザ名とパスワードを使用してログインし アバターの画像をクリックします API コールに必要なアクセストークンが示されます [ コピー (Copy)] ボタンをクリックします アクセストークンは誰にも公開しないようにしてください 1. Python を使用して API コールを行うには requests と json の 2 つのモジュールをインポートする必要があります # 実行に必要なモジュールのインポート import requests import json 2. 次に 後ほどコードで使用する変数を定義します # 実行に必要なモジュールのインポート import requests import json # 変数を定義する url = "https://api.ciscospark.com/v1" api_call ="/people" # 以下の {access-token} の部分は自分のアクセストークンに置き換えること access_token = "Bearer {access-token}"
3. さらに ヘッダーとパラメータに関する情報を定義します # 実行に必要なモジュールのインポート import requests import json # 変数を定義する url = "https://api.ciscospark.com/v1" api_call ="/people" # 以下の {access-token} の部分は自分のアクセストークンに置き換えること access_token = "Bearer {access-token}" # ヘッダー情報 headers = { } "content-type" : "application/json; charset=utf-8", "authorization" : access_token # リクエスト時に使用するパラメータの指定 param = "?email=sqtest-ciscospark-travisuser@squared.example.com" 4. 実際に API を呼び出して 結果を response 変数に割り当てます # 実行に必要なモジュールのインポート import requests import json # 変数を定義する url = "https://api.ciscospark.com/v1" api_call ="/people" # 以下の {access-token} の部分は自分のアクセストークンに置き換えること access_token = "Bearer {access-token}" # ヘッダー情報 headers = { } "content-type" : "application/json; charset=utf-8", "authorization" : access_token, # リクエスト時に使用するパラメータの指定 param = "?email=sqtest-ciscospark-travisuser@squared.example.com" # API の呼び出し先のパスとパラメータを連結する url +=api_call+param response = requests.get(url, headers=headers) # レスポンスの内容を出力 print(response.text)
5. コードを使用できるようになりました これをコピーして Python ファイルとして作業ディレクトリにコピーできます 6. この処理を確認するには コマンドラインインターフェイスを開き 作業ディレクトリに移動します 次に py -3 our_code.py コマンドを実行します ( 環境によっては python our_code.py コマンド ) すべて正しく記述してあれば 端末画面に出力が表示されます
ご覧のように この出力は読みやすいとは言えません コードを変更して 関心のある情報だけが出力されるようにしましょう それには response = requests.get(url, headers=headers) 行の末尾に.json() を追加します 次に response ディクショナリに格納されている内容を繰り返し処理するループを追加して 名前と電子メールアドレスだけが出力されるようにします 追加するコードは次のようになります for item in response["items"]: print('name: ' + item['displayname']) print('email: ' + item['emails'][0]) 7. 最終的なコードは次のようになります # 実行に必要なモジュールのインポート import requests import json # 変数を定義する url = "https://api.ciscospark.com/v1" api_call ="/people" # 以下の {access-token} の部分は自分のアクセストークンに置き換えること access_token = "Bearer {access-token}" # ヘッダー情報 headers = { } "content-type" : "application/json; charset=utf-8", "authorization" : access_token, # リクエスト時に使用するパラメータの指定 param = "?email=sqtest-ciscospark-travisuser@squared.example.com"
# API の呼び出し先のパスとパラメータを連結する url +=api_call+param response = requests.get(url, headers=headers).json() # レスポンスの内容から displayname と email アドレスを表示する for item in response["items"]: print('name: ' + item['displayname']) print('email: ' + item['emails'][0]) コードに変更を加えて再度実行します 出力が簡潔になり 読みやすくなります おめでとうございます REST API の呼び出しを実行し Spark から情報を取得するための Python コードを記述しました 上記のコードについて完全に理解できなくても 心配する必要はありません 次のラボでは Python の各部分について詳細に見ていきます 記述したコードの仕組みをさらに理解できるようになるでしょう