WOFF アプリで SDK を使用して WOFF の処理を行う際には、以下の流れで処理を行います。
WOFF SDK を使用する際には、最初に woff.init() メソッドを実行します。
woff.init() メソッドは WOFF アプリを初期化し、WOFF アプリで WOFF SDK の他のメソッドを呼び出すことができるようにします。
woff.init() は Endpoint URL に初めてリダイレクトされるときに実行されます。
他のタイミングで実行すると、INIT_FAILED エラーが発生しWOFF アプリを開くことができなくなります。
woff.init() の woffId には Developer Console で WOFF アプリを登録した際に発行された WOFF ID を入力します。
woff .init({ woffId: "123456-abcedfg" // 発行された WOFF ID を指定する }) .then(() => { // WOFF API を実行する }) .catch((err) => { // 初期化処理中にエラーが発生した場合 console.log(err.code, err.message); });注意事項
- WOFF アプリが実行されると、URL に付与された woff.state や access_token の情報を基に woff.init() が実行されます。初期化を正しく実行するために、フロントエンドの処理が完了する前に URL を変更しないでください。
- WOFF アプリが最初に実行される URL には、woff.state にアクセストークンなどの機密情報が含まれているため、外部ロギングツールに URL 情報を送信しないことをお勧めします。
woff.isInClient() メソッドと woff.getOS() メソッドを呼び出して、WOFF アプリが実行されている環境を取得します。
WOFF アプリから実行されることを前提としている処理を実装する場合は、woff.isInClient() メソッドの結果が true の場合のみに処理するように実装します。
woff.openWindow() メソッドは、LINE WORKS のアプリ内ブラウザもしくは外部ブラウザで指定された URL を実行します。
woff.sendMessage() メソッドは、ユーザーに代わって WOFF アプリが開かれたトークルームにテキストメッセージを送信します。
次のコードではボタンがクリックされた際に "Hello、Works!" をトークルームに送信します。
document.getElementById('sendMessageButton').addEventListener('click', function(){ if (!woff.isInClient()) { sendAlertIfNoInClient(); } else { woff.sendMessage({ 'content': 'Hello、Works!' }).then(function() { window.alert('Message sent'); }).catch(function(error){ window.alert('Error sending message:' + error); }); }});woff.sendFlexMessage()メソッド を使用すると Flexible Template を使用して WOFF アプリが開かれたトークルームにメッセージを送信します。
woff.closeWindow() メソッドを実行すると、WOFF アプリが終了します。
WOFF アプリを初期化します。
woff.init() を呼び出した後に、他のメソッドを呼び出すことができます。 初期化が実行される際に、LINE WORKS からアプリを実行したユーザーのアクセストークンを取得できます。
WOFF アプリが初期化される前に実行可能なメソッド
- woff.ready
- woff.getOS()
- woff.getVersion()
- woff.getWorksVersion()
WOFF アプリの初期化の注意事項
- woff.init() は Endpoint URL に初めてリダイレクトされるときに実行されます。他のタイミングで実行すると、INIT_FAILED エラーが発生し WOFF アプリを開くことができなくなります。
- WOFF アプリが実行されると、URL に付与された woff.state や access_token の情報を基に woff.init() が実行されます。初期化を正しく実行するために、フロントエンドの処理が完了する前に URL を変更しないでください。
- WOFF アプリが最初に実行される URL には、woff.state にアクセストークンなどの機密情報が含まれているため、ロギングツールなどの外部に URL 情報を送信しないように注意してください。
| name | type | description |
|---|---|---|
| config | Object | WOFF アプリの設定情報 |
| config.woffId | String | WOFF ID |
| successCallback | Function | WOFF アプリの初期化が成功した時に実行するコールバック関数 |
| errorCallback | Function | WOFF アプリの初期化が失敗した時に実行するコールバック関数 |
// 基本woff.init( config, successCallback, errorCallback)// Promise オブジェクトを使用した方法woff .init({ woffId: "123456-abcedfg" // 発行された WOFF ID を指定する }) .then(() => { // WOFF API を実行する }) .catch((err) => { // 初期化処理中にエラーが発生した場合 console.log(err.code, err.message); });// コールバックを使用する方法woff.init({ woffId: "123456-abcedfg" }, successCallback, errorCallback);Promise オブジェクトを返します。
woff.init() を実行して WOFF アプリの初期化が完了した後に実行するアクションを記述します。
woff.ready.then(() => { // woff.init が完了した後に処理を行う})woff.init() 実行時にエラーが発生しても WoffError オブジェクトを返しません。また、woff.ready も reject しません。
WOFFアプリが開いているトークルームのチャンネル ID を取得します。
注意
- この API は、モバイルアプリでのみ利用できます。
- トークルーム以外の画面で WOFF アプリが実行されている場合はチャンネル ID を取得できません。
- この API は、WOFF SDK 3.7.1 以降で利用できます。
なし
woff.getChannelId()Promiseオブジェクトが返されます。
| Return value | Description |
|---|---|
| channelId | トークルームのチャンネル ID |
WOFF アプリを実行する環境を取得します。
なし
woff.getOS()WOFF アプリが実行されている環境が文字列として返されます。
| return value | description |
|---|---|
| ios | iOS or iPadOS |
| android | Android |
| web | 上記以外の環境の場合 |
WOFF アプリが実行される環境の言語設定を取得します。
なし
woff.getLanguage()WOFF アプリが実行される環境の navigator.language が返されます。
WOFF SDK のバージョンを取得します。
なし
woff.getVersion()WOFF SDK のバージョンが文字列として返されます。
ユーザーの LINE WORKS バージョンを取得します。
なし
woff.getWorksVersion()ユーザーの LINE WORKS バージョンが文字列として返されます。
注意
- PC ブラウザでは利用できません。
WOFF アプリが LINE WORKS 内の WOFF ブラウザで実行されていることを確認します。
なし
woff.isInClient()| return value | description |
|---|---|
| true | LINE WORKS 内の WOFF ブラウザで実行されている場合 |
| false | LINE WORKS 内の WOFF ブラウザ以外で実行されている場合 (ブラウザなどで直接アクセスした場合など) |
WOFF アプリにログインします。
注意
- 外部ブラウザ環境で WOFF アプリを実行する際に必要です。
- LINE WORKS 内の WOFF ブラウザ上では woff.init() 時に実行されるため不要です。
- woff.login() 実行後は woff.init() を再度実行する必要があります。
| name | type | description |
|---|---|---|
| loginConfig | Object | ログイン設定 |
| loginConfig.redirectUri | String | ログイン後に移動する URL 設定しない場合は、WOFF アプリに登録された Endpoint URL に移動します。 |
| loginConfig.domain | String | ドメイン名 (フリープラン・スタンダードプランの場合は、グループ名) SSO 機能を利用する場合には必須。 |
if (!woff.isLoggedIn()) { woff.login({ redirectUri: "https://example.com/path" }); // Verifies whether domain name and path of the specified URL}なし
ユーザーがログインしていることを確認します。
なし
woff.isLoggedIn()| return value | description |
|---|---|
| true | ユーザーがログインしている状態 |
| false | ユーザーがログインしていない状態 |
WOFF アプリからログアウトします。
注意
- ログアウトすると、WOFF のアクセストークンは削除されます。
なし
woff.logout()なし
現在のユーザーのアクセストークンを取得します。
この API で取得したアクセストークンを使用して、バックエンドでユーザー情報を取得する等が可能です。
注意
- このアクセストークンが持つ権限範囲には、Developer Console で選択された全ての Scope が含まれます。
外部ブラウザーで WOFF アプリを使用する場合は、以下の手順によりアクセストークンを取得できます。
なし
woff.getAccessToken()現在のユーザーのアクセストークンを文字列として返します。
WOFF アプリのコンテキスト情報を取得します。
なし
woff.getContext()| return value | description |
|---|---|
| viewType | WOFF アプリサイズ (compact、tall、full) 外部ブラウザで開いた場合は external が入ります。 |
| endpointUrl | サービスエンドポイント URL |
| clientId | WOFF アプリの Client ID |
| clientType | WOFF アプリが実行された環境の種類 (PC_WEB、MOBILE_APP、PC_APP) |
{ "viewType": "full", "endpointUrl": "https://example.com/my-app/", "permanentLinkPattern": "concat", "clientId": "_K3ELJuSyEJQlNrkjPPP", "clientType": "MOBILE_APP"}ユーザーのプロフィール情報を取得します。
なし
woff.getProfile()Promiseオブジェクトが返されます。
| return value | description |
|---|---|
| domainId | ドメイン ID |
| userId | ユーザー ID |
| displayName | ユーザー名 |
WOFF アプリが開いているトークルームにユーザーに代わってメッセージを送信します。
注意
- この API を利用するには bot または bot.message Scope が必要です。
- この API は、モバイルアプリでのみ利用できます。
- トークルーム以外の画面で WOFF アプリが実行されている場合はメッセージを送信できません。
| name | type | description |
|---|---|---|
| message | Object | required |
| message.content | Object | トークルームに送信されるメッセージコンテンツ required |
woff.sendMessage({ content: "Hello、World!"}) .then(()=> { console.log('message sent'); }) .catch((err)=> { console.log('error', err); });Promise オブジェクトを返します。
WOFF アプリが開いているトークルームにユーザーに代わって Flexible Template メッセージを送信します。
注意
- この API を利用するには bot または bot.message Scope が必要です。
- この API は、モバイルアプリでのみ利用できます。
- トークルーム以外の画面で WOFF アプリが実行されている場合はメッセージを送信できません。
| name | type | description |
|---|---|---|
| message | Object | required |
| message.flex | String | トークルームに送信する Flexible Template メッセージ required |
woff.sendFlexMessage({ flex: { "type": "flex", "altText": file.name, "contents": { "type": "bubble", "size": "kilo", ... } }}) .then(() => { console.log('message sent'); }) .catch((err) => { console.log('error', err); });Promise オブジェクトを返します。
QR コードリーダーを起動して QR コードの読み込みを行います。 QR コードリーダーを有効にするには、Developer Console で WOFF アプリの Scan QR オプションを有効にする必要があります。
woff.scanQR() は以下の環境で動作します。
なし
woff.scanQR() .then((result) => { // result = { value: "" } }) .catch((err) => { console.log('error', err); });Promise オブジェクトを返します。
| return value | description |
|---|---|
| value | QR コードリーダーがスキャンした文字列 |
LINE WORKS のアプリ内ブラウザまたは外部ブラウザで指定された URL を開きます。外部ブラウザで実行すると正常に動作しない可能性があります。
| name | type | description |
|---|---|---|
| params | Object | |
| params.url | String | URLの絶対パス |
| params.external | true/false | 外部ブラウザで URL を開くかどうか (true:外部ブラウザ、false:アプリ内ブラウザ) |
woff.openWindow({ url: "https://developers.worksmobile.com", external: true});なし
WOFF アプリを終了します。外部ブラウザで実行すると正常に動作しない可能性があります。
なし
woff.closeWindow()なし
WOFF SDKでのエラーは WoffError オブジェクトで返されます。
| name | type | description |
|---|---|---|
| code | String | エラーコード |
| message | String | エラーメッセージ |
| code | description |
|---|---|
| 400 | JSON フォーマットが正しくないなど、リクエストに問題がある場合に返されます。 |
| 401 | Authorization ヘッダーが正しく送信されていない場合に返されます。 |
| 403 | API を使用する権限がない場合に返されます。 |
| 429 | Rate Limit に達した場合に返されます。API の呼び出し回数を減らす必要があります。 |
| 500 | API サーバーの一時的なエラーが発生した場合に返されます。 |
| INIT_FAILED | WOFF SDK の初期化に失敗した場合に返されます。 |
| INVALID_ARGUMENT | 不正な引数を使用した場合に返されます。 |
| UNAUTHORIZED | LINE WORKS のログインができない場合に返されます。API 呼び出し時に正しいアクセストークンを指定したことを確認する必要があります。 |
| FORBIDDEN | 必要な権限がない、またはサポートされていない環境で使用した場合に返されます。 |
| INVALID_CONFIG | Developer Console での設定が正しくない場合に返されます。 |
| INVALID_ID_TOKEN | ID トークンが正しくない場合に返されます。 |
| EXCEPTION_IN_SUBWINDOW | サブウィンドウで問題が発生した場合に返されます。 |