LINE WORKSで100名以上のメンバーを一括追加したい
LINE WORKSの標準機能では出来ないあれやこれやを、
LINE WORKS API 2.0 x GASを使ってサクッと解決するシリーズ第一弾
今回は、メンバー一括追加です。
LINE WORKSは管理画面からCSVファイルをアップロードして一括追加が可能ですが、一度に100名までが上限となっています。
APIであれば、100名以上の流し込みは可能です。
そこで、LINE WORKS API2.0 x GAS を使って、Google Sheet に入力したデータを流し込みます。
実行イメージ
Google Sheetにメンバー情報を入力し、インポート開始ボタン押下
GASはスクリプトの実行時間が最大6分という上限があるため、
一回の処理で流し込めるメンバー数はだいたい300~360名ほどです
それ以上の数を実行する場合は、処理が止まった時点から続けて実行してください。
必要なもの
- Googleアカウント(無償でもOK)
- LINE WORKS Developers Consoleへのアクセス権限を持つID
- LINE WORKS 便利ツール
事前準備
1. LINE WORKS Developersから認証情報をコピー
LINE WORKS Developers へアクセスして、アプリを新規追加します
「アプリの説明」に任意のテキストを入力します
「Client ID」をコピーしてメモしておきます
「Client Secret」をコピーしてメモしておきます
「Redirect URL」に任意のURLを入力します
「Domain ID」をコピーしてメモしておきます
「OAuth Scopes」の管理にて、とりあえずすべてのScopeを選択して保存します。
*Scopeは利用範囲に応じて狭めてください

「Service Account」をコピーします
「Private Key」の発行ボタンを押してkeyファイルをダウンロードします

2. GASの設定
Google Sheetのテンプレートをコピーします
シート「jwtGenerator」を開き、
「事前設定」のフィールドに先ほどコピーした
- Client ID
- Client Secret
- Service Account
- Private Keyのファイル名 (「private_2023xxxxxxxx.key」というような名称)
- OAuth Scopesはそのまま
-
Domain ID
を、それぞれ入力します
Private KeyファイルをDriveにアップロードする
つぎに、先ほどLINE WORKS Developers Consoleからダウンロードした
Private Keyファイルを、「LINE WORKS 便利ツール」と同じGoogle Driveのロケーションに配置します。
ロケーションへの移動の仕方は以下

ドラッグ&ドロップで.keyファイルをアップロード

3. token発行のテスト
jwtGeneratorシートにもどり、
「トークンを発行」ボタンを押します

Access Token と Refresh Tokenに何やら文字列が表示されたら、テスト成功
LINE WORKS便利ツールの準備完了です。
文字列がなにも表示されない場合は、
手順を最初から見直してみてください。
メンバーを一括追加する
1. メンバー情報を入力する
「importUser」シートを開きます
1行目の「記入例」を参考に、情報を入力していきます。
項目 | 説明 |
---|---|
姓名 | どちらか一方は必須 |
ログインID | 必須。ログイン時に使うID。Advanced Planの場合はメールアドレス |
パスワード | 管理画面のパスワードポリシーを適用, 空白の場合はメンバー自身で設定 |
カナ姓名 | 任意 |
英語姓名 | 任意。多言語表示の場合に適用 |
個人メールアドレス | 任意。パスワードが空白の場合は必須 |
ニックネーム | 任意 |
組織のexternalKey | 任意。*Developers Console設定した組織のexternalKeyを指定する
複数指定する場合はカンマ区切り(例:org1,org2,org3) |
役職のexternalKey | 任意。*Developers Consoleで設定した役職のexternalKeyを指定する
複数指定する場合はカンマ区切り(例:pos1,pos2,pos3) |
利用権限タイプのexternalKey | 任意。*Developers Consoleで設定した利用権限タイプのexternalKeyを指定する |
電話番号 | 任意 |
携帯番号 | 任意 |
言語 | 任意。日本語は ja_JP
韓国語:ko_KR, 英語:en_US, 中国語(簡体):zh_CN, 中国語(繁体):zh_TW |
住所 | 任意 |
*組織、役職、利用権限タイプを指定する場合は、事前にまず externalKeyの設定が必要です。
手順は以下を参照してください。
Developers Console 組織連携 へアクセスし、
画面をスクロールして、「External Key Mapping」のセクションを表示します

External Key Mappingのセクションで、
「一覧のダウンロード」よりCSVファイルをダウンロードします。

CSVファイルを開き、「External Key」のカラムに、任意のexternal Keyの値を入力し、
保存 > アップロードします。
データチェックでエラーが発生したら、内容を確認して再度アップロードしてください。
成功したら、externalKeyの設定完了です。
2. インポート開始
データが準備できたら、インポート開始ボタンを押します。
ポップアップの確認で「OK」します。
1件あたりの実行に約1秒を要します
処理が完了、または途中で失敗したら、その時点で処理を中止して、ポップアップが表示されます
失敗した場合は、その時点のログインIDと、エラー理由が表示されます
以下はIDが重複していたケース
3. 実行結果の確認
「log」シートを開きます
タイムスタンプ、実行結果、追加したログインID、Request Body, Responseが記録されます。
失敗して途中で処理が止まった場合は、どこまでのIDがインポートできているか確認し、
続きのデータをインポートできるようimportUserシートを修正した上で再実行しましょう。
今回はメンバー一括追加を紹介しました。
ただ、GASのスクリプト実行が6分間までなので、
1,000以上のメンバーを流し込みたい場合は、小間切れになってしまいやはりちょっと手間ですよね。
どうしても一気に流し込みたい!という方は、
以下、masato-3さんのPowerShellでCSVデータを流し込むツールもお試しください。こちらは制限時間もなく一気にいけます。
https://github.com/msato-3/Import-LWUsers/
LINE WORKSの標準機能では出来ないあれやこれやを解決するLINE WORKS便利ツール
今後はこんなツールを予定しています
- ユーザを一括削除したい
- 組織を一括追加したい
- グループを一括追加したい
- ID名を一括変更したい
- メッセージを一斉配信したい
- 監査ログを自動保存したい
- SNSのコメントやメッセージをLINE WORKSへ通知したい
etc...
今後なにかご要望があればお知らせください
作ってみるかもしれないです。