Skip to main content

your project description

Project description

skintone

skintone はKintoneにアクセスするための Python ライブラリです。

from skintone import kintone, kintone_file

kintone      = kintone.Kintone('APIトークン', 'サブドメイン', 'アプリID')
kintone_file = kintone_file.KintoneFile('APIトークン', 'サブドメイン')

Features

skintone は Kintone を Python で操作するためのライブラリです。
skintone はKintone REST APIの以下に対応しています

Requirement

skintone は Python3 系で動作し、以下のライブラリに依存します。

Installation

pip install skintone

Usage

  • レコードの取得(複数)
#呼び出し方
kintone.select(where,order,limit,fields)
"""
引数は省略可能です

・レコードのソートをする場合はwhereには書かず、orderに記述してください
・limitを指定する場合はwhereには書かず、limitに数値を記述してください
・fieldsを省略した場合、全フィールドを取得します
・idとrevisionは指定していなくても取得します
・500件より多いレコードを取得することは出来ません
"""

#例
where    = 'フィールドコート1 = "value"'
order    = 'order by $id asc'
limit    = 500
fields   = ['フィールドコート1','フィールドコート2','サブテーブル']
response = kintone.select(where=where,order=order,limit=limit,fields=fields)

"""
レスポンスの例
[
    {
        '$id':1,
        'revision':1,
        'フィールドコート1':'value',
        'フィールドコート2':'value',
        'サブテーブル':
        [
            {
                'id': '1111111',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            },
            {
                'id': '1111112',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            }
        ]
    },
    {
        '$id':2,
        'revision':1,
        'フィールドコート1':'value',
        'フィールドコート2':'value',
        'サブテーブル':
        [
            {
                'id': '2222222',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            },
            {
                'id': '2222223',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            }
        ]
    }
]

"""
  • レコードの取得(一件)
#呼び出し方
#引数に取得するレコードIDを指定します
kintone.selectRec(recordID)

#例
recordID = 1
response = kintone.selectRec(recordID)

"""
レスポンスの例
{
    '$id':1,
    'revision':1,
    'フィールドコート1':'value',
    'フィールドコート2':'value',
    'サブテーブル':
    [
        {
            'id': '1111111',   #テーブルの行ID
            'フィールドコート1':'value',
            'フィールドコート2':'value',
        },
        {
            'id': '1111112',   #テーブルの行ID
            'フィールドコート1':'value',
            'フィールドコート2':'value',
        }
    ],
}

"""
  • レコードの取得(全件)
#呼び出し方
kintone.selectAll(where,fields)
"""
引数は省略可能です

・order byを指定することはできません
・limitを指定することはできません
・fieldsを省略した場合、全フィールドを取得します
・idとrevisionは指定していなくても取得します
・対象のレコードをすべて取得します(offset上限対応)
"""

#例
where    = 'フィールドコート1 = "value"'
fields   = ['フィールドコート1','フィールドコート2','サブテーブル']
response = kintone.select(where=where, fields=fields)

"""
レスポンスの例
[
    {
        '$id':1,
        'revision':1,
        'フィールドコート1':'value',
        'フィールドコート2':'value',
        'サブテーブル':
        [
            {
                'id': '1111111',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            },
            {
                'id': '1111112',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            }
        ]
    },
    {
        '$id':2,
        'revision':1,
        'フィールドコート1':'value',
        'フィールドコート2':'value',
        'サブテーブル':
        [
            {
                'id': '2222222',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            },
            {
                'id': '2222223',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            }
        ]
    }
]

"""
  • レコードの登録(一括)
#呼び出し方
#insert関数の引数はリスト型でなくてはいけません
kintone.insert(records)

#例
records = [
    {
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        'チェックボックス':
            [
                'sample1',
                'sample2'
            ],
        'ユーザー選択':
            [
                'ログイン名1',
                'ログイン名2'
            ],
        'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
        ]
    },
    {
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        ............
    }
]

response = kintone.insert(records)

"""
レスポンスの例
{
    'ids':['1','2'],
    'revisions':['1','1']
}
"""
  • レコードの登録(一件)
#呼び出し方
#insertRec関数の引数は辞書型でなくてはいけません
kintone.insertRec(record)

#例
record = {
    '文字列__1行':'value',
    '文字列__複数行':'value\nvalue2',
    'チェックボックス':
        [
            'sample1',
            'sample2'
        ],
    'ユーザー選択':
        [
            'ログイン名1',
            'ログイン名2'
        ],
    'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
        ]
}

response = kintone.insertRec(record)
"""
レスポンスの例
{
    'id': '1',
    'revision': '1'
}
"""
  • レコードの更新(一括)
#呼び出し方
#update関数の引数はリスト型でなくてはいけません
kintone.update(records)

"""
登録するレコードにidもしくはupdateKeyを指定する必要があります
"""

#例
records = [
    {
        '$id':'1',
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        'チェックボックス':
            [
                'sample1',
                'sample2'
            ],
        'ユーザー選択':
            [
                'ログイン名1',
                'ログイン名2'
            ],
        'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
        ]
    },
    {
        'updateKey':
        {
            'field':'重複禁止のフィールドコート',
            'value':'value'
        },
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        ............
    }
]

response = kintone.update(records)
"""
レスポンスの例
{
    'records':[
        {
            'id':'1',
            'revision':'2'
        },
        {
            'id':'2',
            'revision':'2'
        }
    ]
}
"""
  • レコードの更新(一件)
#呼び出し方
#updateRec関数の引数は辞書型でなくてはいけません
kintone.updateRec(record)

"""
登録するレコードにidもしくはupdateKeyを指定する必要があります
"""
#例

record = {
    '$id':'1',
    '文字列__1行':'value',
    '文字列__複数行':'value\nvalue2',
    'チェックボックス':
        [
            'sample1',
            'sample2'
        ],
    'ユーザー選択':
        [
            'ログイン名1',
            'ログイン名2'
        ],
    'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
}

response = kintone.updateRec(record)
"""
レスポンスの例
{
    'revision': '2'
}
"""
  • レコードの削除
#呼び出し方
#delete関数の引数はリスト型でなくてはいけません
kintone.delete(recordIDs)

#例

recordIDs = ['1','2','3']

response = kintone.delete(recordIDs)
"""
レスポンスの例
{}
"""
#リクエスト成功時は空の辞書が戻ってきます
  • レコードコメントの投稿
#呼び出し方
kintone.postComment(recordID, text, mentions)

#例

text      = "システムからのコメントです。\nご確認をお願いします。"
mentions  = [
    {
        "code": "takahashi",
        "type": "USER"
    },
    {
        // メンション先のユーザーにゲストユーザーを指定する場合
        "code": "guest/yamada@test.jp",
        "type": "USER"
    },
]

response = kintone.postComment(recordID=1, text=text, mentions=mentions)
"""
レスポンスの例
{
    "id": 1
}
"""
#投稿したコメントのIDが返されます
  • レコードコメントの削除
#呼び出し方
kintone.deleteComment(recordID, commentID)

#例
response = kintone.deleteComment(recordID=1, comment=1)

"""
レスポンスの例
{}
"""
#リクエスト成功時は空の辞書が戻ってきます
  • レコードコメントの一括取得
#呼び出し方
kintone.selectComment(recordID, order, offset, limit)
"""
order,offset,limitは省略可能です
"""

#例
response = kintone.selectComment(recordID=1, order='desc', offset=0, limit=10)

"""
レスポンスの例
{
    "comments": [
        {
            "id": "2",
            "text": "佐藤 昇 \nありがとうございます。内容を確認しました。\n引き続きよろしくお願いします!",
            "createdAt": "2016-04-12T23:49:00Z",
            "creator": {
                "code": "kato",
                "name": "加藤 美咲"
            },
            "mentions": [
                {
                    "code": "sato",
                    "type": "USER"
                }
            ]
        },
        {
            "id": "1",
            "text": "加藤 美咲   営業本部 管理部受付 \n\n本日の作業レポートです。\n高橋 しおり さん、ご確認をお願いします。",
            "createdAt": "2016-04-12T23:46:00Z",
            "creator": {
                "code": "sato",
                "name": "佐藤 昇"
            },
            "mentions": [
                {
                    "code": "kato",
                    "type": "USER"
                },
                {
                    "code": "営業本部_OZKQWZ",
                    "type": "ORGANIZATION"
                },
                {
                    "code": "管理部受付_zX6C6r",
                    "type": "GROUP"
                },
                {
                    "code": "takahashi",
                    "type": "USER"
                }
            ]
        }
    ],
    "older": false,
    "newer": false
}
"""
  • ファイルのアップロード
#呼び出し方
kintone_file.uploadFile(file)

#例
with open('ファイルのパス', mode='rb') as f:
    response = kintone_file.uploadFile(f)

"""
レスポンスの例
{
    "fileKey": "c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6"
}
"""
  • ファイルのダウンロード
#呼び出し方
kintone_file.downloadFile(fileKey)

#例
fileKey  = 'c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6'
response = kintone_file.downloadFile(fileKey=fileKey)

"""
バイナリデータがレスポンスされます
"""

Author

本插件完全借助于 Masashi Tsuruya 的 pytone, 但是 pip 仓库里面的代码没有更新 token 认证方式,所以只能自己弄了一个仓库

License

"skintone" is under MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skintone-0.0.1.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skintone-0.0.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file skintone-0.0.1.tar.gz.

File metadata

  • Download URL: skintone-0.0.1.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for skintone-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9ff4a60fcabb693ce77f266ed2a900bc064ec327febb532a7a1597b314a7e564
MD5 7fa201cca6bb88889eb828663f118809
BLAKE2b-256 97ec85fb726c17327a2ef086cfa7c9453370b6278e581d0a037b631e9c45e472

See more details on using hashes here.

File details

Details for the file skintone-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: skintone-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for skintone-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 89a00699e7a379dc1965233a1f0b3216825a9fe8a4f0234fc7f69085989641da
MD5 e3647bc2100b842e207368e720c670d5
BLAKE2b-256 3d40c2284f6c5320abc1249452b417749f7e79575b3a2036247d7471abeb1df1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page