kintoneのレコードをPythonから条件クエリー(チェックボックス)で取得する
Google Calendar Twilio Reminderのkintoneのレコードを取得する部分の説明です。
目次
kintoneアプリの作成
以下の項目を持つアプリを作成します。
フィールド名 | フィールドコード | タイプ | 内容 |
---|---|---|---|
メールアドレ | calendar_id | 文字列(1行) | Googleアカウントのメールアドレス |
電話番号 | tel_number | 文字列(1行) | Twilioからかかってくる先の電話番号 |
無効 | invalid | チェックボックス | 選択項目は「無効」のみ |
※「無効」は設定を無効にするための項目です。レコード削除でも同じです。
コード説明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# coding:utf-8 import logging import requests import json import os import sys import traceback logger = logging.getLogger() logger.setLevel(logging.INFO) class KintoneCalendarCall(object): def __init__(self): KINTONE_URL = "https://{kintone_domain}/k/v1/records.json?app={kintone_app}" self.url = KINTONE_URL.format( kintone_domain=os.environ['KINTONE_DOMAIN'], kintone_app=os.environ['KINTONE_APP'] ) self.headers_key = os.environ['KINTONE_HEADERS_KEY'] self.api_key = os.environ['KINTONE_API_KEY'] self.basic_headers_key = os.environ['KINTONE_BASIC_HEADERS_KEY'] self.basic_headers_value =os.environ['KINTONE_BASIC_HEADERS_VALUE'] self.query = u'&query=invalid not in ("無効")' def get_regist(self): try: headers = {self.headers_key: self.api_key} if self.basic_headers_value != '': headers[self.basic_headers_key] = self.basic_headers_value response_record = requests.get(self.url + self.query , headers=headers) record_data = json.loads(response_record.text) logger.info(record_data) records = record_data['records'] return records except Exception as e: logger.error(traceback.format_exc(sys.exc_info()[2])) |
変数取得
AWS Lambdaの環境変数設定を使っています。
kintone関係の環境変数は以下です。
変数名 | 設定値 |
---|---|
KINTONE_DOMAIN | kintoneのドメイン xxx.cybozu.com |
KINTONE_APP | kintoneのアプリの数字 |
KINTONE_HEADERS_KEY | X-Cybozu-API-Token |
KINTONE_API_KEY | kintoneのAPIキー |
KINTONE_BASIC_HEADERS_KEY | Authorization |
KINTONE_BASIC_HEADERS_VALUE | kintoneベーシック認証のキー(Basic)で始まる |
クエリーは固定で &query=invalid not in (“無効”) としています。
これでkintoneで「無効」のチェックが入っていないレコードのみを取得します。
KINTONE_DOMAIN
この xxx.cybozu.com を設定します。
契約によっては「cybozu.com」じゃない場合もあるようです。
KINTONE_APP
kintoneのアプリを開いたときのURLの数字を設定します。
KINTONE_HEADERS_KEY
固定で「X-Cybozu-API-Token」です。
万が一変更があったときのために変数化しています。
KINTONE_API_KEY
[アプリの設定を変更]をクリックします。
[カスタマイズ/サービス連携]の[APIトークン]をクリックします。
[生成する]をクリックしてAPIトークンを生成します。
権限は閲覧のみにします。
ここで生成されたAPIトークンをKINTONE_API_KEYに設定します。
KINTONE_BASIC_HEADERS_KEY
固定で「Authorization」です。
万が一変更があったときのために変数化しています。
アクセス制限をしてない環境では不要です。
KINTONE_BASIC_HEADERS_VALUE
「Basic 」とBasic認証に使用している「ログイン名:パスワード」をBASE64エンコードしたものを値に指定します。
例 : ログイン名が「Administrator」、パスワードが「cybozu」の場合
Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
アクセス制限をしてない環境では不要です。
レコード取得
- headersにX-Cybozu-API-TokenとAPIトークンを設定
- Basic認証をしている場合はheadersに設定
- https://{kintone_domain}/k/v1/records.json?app={kintone_app}&query=invalid not in (“無効”) とheaders を引数にしてrequestsパッケージを使ってGETリクエストします。
- レコード取得結果をデコーディングして[records]の値を戻します。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
Cybozu Days 2021「ユーザーがリアルに語る 「すごくなくてもいい」 kintone 活用術」セッションを観ました
kintoneアプリを開発する時間がない キンコミに書き込まれた質問に答えていく …
-
kintone Café 大阪 vol.11で登壇しました
kintone Café 大阪 vol.11「kintoneと色々つないでみる …
-
kintone開発者ライセンスを申し込む
kintoneにはkintoneのアプリケーション開発や検証を目的とした開発者ラ …
-
「kintone Café 大阪 Vol.15 〜kintone Night Café 2017 〜」でLTしてきました
「kintone Café 大阪 Vol.15 〜kintone Night C …
-
Cybozu Circus Fukuokaで「なぜ御社のDXは進まない?!DXを阻む壁を突破する方法。」を見ました。
サイボウズ営業本部営業戦略部の木地谷さんと船井総合研究所DX支援本部DX推進室の …
-
kintone hiveで改めてkintoneの破壊力を見た
kintone hiveとは 「日頃から業務の中でkintoneを活用しているユ …
-
CUSTOMINEを使ってkintoneからAWS Lambdaを実行する(Cognito認証付き)
先日の記事「kintoneのカスタマイズ開発を超速にするCUSTOMINE」で書 …
-
Cybozu Days 2021「WeWork Japanが kintoneの導入ショック期を越え、利用定着するまで」セッションを観ました
2021/11/1のCybozu Days 2021に来ました。 初日のみの参加 …
-
kintoneでEveryoneに権限が設定されているアプリをAWS Lambdaで一括チェックする
こないだ、kintone Cafeでユーザーが自由に作成している環境だと、どんな …
-
kintone Café 大阪 vol.12で企画/登壇しました
前回(vol.11)よりkintone Café 大阪の運営に参加させていただ …