ユーザーエクスポート API(CSV)
ユーザー情報をCSV出力するためのAPIです。
- Administrator の情報は出力できません。
HTTP メソッド
GET
URI
https://{sub-domain}.cybozu.com/v1/csv/user.csv
リクエストヘッダ
ヘッダ | 値と説明 |
X-Cybozu-Authorization | 「ログイン名:パスワード」をBASE64エンコードしたものを値に指定します。 |
Authorization | Basic認証を利用している場合、文字列「Basic 」と「ログイン名:パスワード」をBASE64エンコードしたものを値に指定します。 |
// Sample X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
リクエストボディ
必要なパラメータはありません。
レスポンス
ユーザー情報 CSV が HTTP レスポンスボディに含まれています。CSV フォーマットの詳細は ユーザー情報 CSV をご参照ください。
アクセス権
cybozu.com共通管理者のみ実行できます。
ユーザーエクスポート API(JSON)
ユーザー情報 をJSONデータで出力するための API です。
HTTP メソッド
GET
URI
https://(サブドメイン名).cybozu.com/v1/users.json
リクエストヘッダ
ヘッダ | 値と説明 |
X-Cybozu-Authorization | 「ログイン名:パスワード」をBASE64エンコードしたものを値に指定します。 |
Authorization | Basic認証を利用している場合、文字列「Basic 」と「ログイン名:パスワード」をBASE64エンコードしたものを値に指定します。 |
// Sample X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
リクエストパラメータ
パラメータ名 | 指定する値 | 必須 | 説明 |
ids | 配列 | 省略可(省略時は最大100)。 | 取得したいユーザーのID一覧。 |
codes | 配列 | 省略可(省略時は最大100)。 | 取得したいcode一覧。 |
offset | 数値 |
省略可(省略時は0)。 |
オフセット。 |
size | 数値 | 省略可(省略時は最大100)。 | 取得件数。 |
リクエストの例
※idsとcodesの両方が指定された場合は、エラーになります。
クエリ文字列
ids[0]=1&ids[1]=2&ids[2]=3&offset=0&size=100
リクエストヘッダを含んだ文字列
GET /v1/users.json?ids[0]=1&ids[1]=2&ids[2]=3&offset=0&size=100 HTTP/1.1 Host: example.cybozu.com:443 X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
- Content-Typeヘッダは不要です。
レスポンス
キー | 型 | 制約 |
---|---|---|
user | user型 | ユーザ情報 |
アクセス権
全ユーザーでアクセス可能です。
※kintoneのゲストユーザはアクセスできません。
いつもお世話になっております。
このページで紹介されているユーザーエクスポート API(JSON)について、
PHPで外部から取得する場合、どのように記述するのでしょうか。
PHP Tipsの情報を参考に、このページのリクエストの内容をPHPに置き換えてみたのですが、条件パラメータが効いておらず、アカウント情報が毎回、全件抽出されてしまいます。
$context内のqueryが無視されている感じです。
試しに$result内のURLに直接
~v1/users.json?ids[0]=1&ids[1]=2&offset=0&size=100
のように記載してみましたが、これも結果は同じでした。
ご教授いただけますよう、よろしくお願い申し上げます。
TAKA様
お世話になっております。
ユーザーエクスポートAPIはkintone APIと異なりqueryをサポートしていません。
cybozu Development teamさま
回答ありがとうございます。
URLで「ids[0]=1&ids[1]=2&ids[2]=3&offset=0&size=100」というように指定できるようになっていますが、
これをqueryで指定する方法はないということでしょうか。
TAKA様
はい、リクエストボディでのクエリ指定ができないので、クエリ文字列をURLに含める形になります。
ご確認よろしくお願いします。
cybozu Development teamさま
何度も恐縮ですが、確認でございます。
仰る通りqueryでの指定はできませんでしたので、file_get_contentsのURLに「ids[0]=1&ids[1]=2&ids[2]=3&offset=0&size=100」を追加してみましたが、これも無視され、全件抽出されました。
PHPでは条件指定で抽出する方法はないという認識で間違いないでしょうか?
今一度コードのご確認をお願いします。
cybozu Development teamさま
ご丁寧なお返事をいただきありがとうございました。
指定したidのみ出力できたとのこと、ご提示いただいたコードはこちらで試したものと変わらない内容ですので、私のコードがどこか間違っていたのかもしれません。
再度見直しを行ないます。
お騒がせして申し訳ございませんでした。
TAKA 様
とんでもございません。またご不明な点がございましたら、お気軽にコミュニティなどご活用ください。
すみませんが本APIについて教えて下さい
標準のフィールドを使わずにアプリを作成したく、JavascriptとHTMLのみで作成を進めています
ユーザー選択と同等のコンポーネントを作成したく、APIの箇所は以下の通りに作りました。
またこれらの方法がない場合適切な方法としては
一旦Offisetを活用して全ての情報をメモリ内に格納するしかないでしょうか
可能であれば教えて頂きたい次第です
yuichiro 様
お世話になっております。cybozu developer network 運営でございます。
Yuichiro 様のご認識の通り、100件より多くのユーザーデータをエクスポートする場合は、
Offsetを利用しながら数回にわたってリクエストを送信し、都度レスポンスをメモリに保存する必要があります。
ユーザーエクスポート API は、クエリによるフィルタには対応しておらず、
他にユーザー情報を出力できる API はございません。
お力になれず申し訳ございませんが、ご理解のほどよろしくお願いいたします。
cybozu Development team様
ご回答ありがとうございます。
仕様について了解しました
offsetを指定した場合、残りのぺージャーが何件あるか判定する方法は仕様上存在しますか?
特になければapiからの返り値の配列が0か否かで全てのページャーを、取得したか判定したいと思います
yuichiro 様
残りのページャー数は返り値には含まれませんので、
返り値である配列の長さが0か否かで、全てのページャーを取得したか判定する必要があります。
また、技術的な質問に関しましては、
ぜひ cybozu developer コミュニティ をご利用ください。