当社のRESTful APIは、企業データへのアクセスを可能にするだけでなく、さまざまなエンドポイントを介してユーザーを管理するためにも使用できます:
- すべてのユーザーレコードを取得
- ユーザーの作成
- ユーザーの検索
- 単一のユーザーレコードを取得する
- ユーザーの削除
- ユーザの更新
この記事では、"update user "エンドポイントについて説明し、ユーザのメールアドレスを一括更新する方法について説明します。
ユーザの更新
このエンドポイントを使用すると、指定されたデータでユーザを更新できます。
注:タグは置換されます。
更新可能なフィールド
- 電子メール
- 有効: true/false
- 役割
- チーム
- タグ
- 優先開発言語
ヒント:skipNotifyIfSsoフィールドをfalseに設定することで、ユーザーに送信されるEメール通知の変更を無効にすることができます。
ユーザーのメールを一括更新する方法
ユーザーのメールアドレスを更新するスクリプトを作成しました。
- APIキーの取得
- 以下のスクリプトをupdate_email_addresses.shという名前のファイルに保存する。
- posix シェルで以下のコマンドラインを実行します: (xxxxxxx を API キーに置き換えてください)
SCW_API_KEY=xxxxxxxxx../update_email_addresses.sh 2log.txt
注意すべきこと
- APIキーを保護するために、コマンドを実行したらシェル履歴から削除することを強く推奨します。
- 更新したいユーザーの数によっては、すべてのユーザーを更新するのに数分かかる場合があります。
#!/bin/sh set -e [ -z "${SCW_API_KEY:-}" ] && echo "Usage SCW_API_KEY=xxx $0 [--skipNotifyIfSso] 2>log.txt" && exit 1 api_key_header="X-API-Key: ${SCW_API_KEY}" api_host="portal-api" # api_host="portal-api.eu" api_url="https://${api_host}.securecodewarrior.com/api/v2/users" skip_notify_if_sso=false [ "--skipNotifyIfSso" = "$1" ] && skip_notify_if_sso=true updateUserEmail() { old=$1 new=$2 output=$( echo "${old} -> ${new}" curl -s -X PATCH -H "Accept: application/json" -H "${api_key_header}" -H "Content-Type: application/json" \ -d "{ \"email\": \"${new}\"}" \ "${api_url}/${old}?skipNotifyIfSso=${skip_notify_if_sso}&idtype=email" echo ) echo "${output}" >&2 } # 例 #基本的な使い方 #updateUserEmail "foo@bar.com" "foo@baz.com" # changes domain part #updateUserEmail "cat@bar.com" "dog@bar.com" # changes name part # 逐次更新。これは各更新の完了を待ってから次の更新を行う。. #updateUserEmail "alice@bar.com" "alice@baz.com" #updateUserEmail "bob@bar.com" "bob@baz.com" #updateUserEmail "charlie@bar.com" "charlie@baz.com" # 並列アップデート:複数のアップデートを同時に実行するには、末尾のアンパサンドを使用する。これらはバッチに分割されるべきである。 # レート制限を避けるため #updateUserEmail "alice@bar.com" "alice@baz.com" & #updateUserEmail "bob@bar.com" "bob@baz.com" & #updateUserEmail "charlie@bar.com" "charlie@baz.com" & #updateUserEmail "ella@bar.com" "ella@baz.com" & # 並行して実行されている上記のバックグラウンドジョブの終了を待つ #wait #updateUserEmail "frank@bar.com" "frank@baz.com" & #updateUserEmail "george@bar.com" "george@baz.com" & #updateUserEmail "hugh@bar.com" "hugh@baz.com" & #updateUserEmail "ivan@bar.com" "ivan@baz.com" & #updateUserEmail "joe@bar.com" "joe@baz.com" & # 並行して実行されている上記のバックグラウンドジョブの終了を待つ #wait
コメント
0件のコメント
サインインしてコメントを残してください。