ONLYOFFICEとLiferayを接続する方法

# ONLYOFFICEとLiferayの連携について

ONLYOFFICEでは、ONLYOFFICE DocsとLiferayを連携し、Liferay 文書とメディアライブラリ内でオフィス文書を編集するための公式コネクタを提供しています。ONLYOFFICEコネクタは、[Liferay Marketplace](https://web.liferay.com/marketplace/-/mp/application/171169174)または[GitHub](https://github.com/ONLYOFFICE/onlyoffice-liferay)のページからダウンロードできます。このコネクタはApacheライセンスで配布されています。

:::note warn
ONLYOFFICEのLiferay用コネクタの動作の詳細については、[APIドキュメントページ](https://api.onlyoffice.com/editors/liferay)をご覧ください。
:::

**主な機能**

* ONLYOFFICEメニューの「ONLYOFFICEで作成」によるファイル作成
* オンラインフォームの作成と入力
* ドキュメントとメディアセクション内のONLYOFFICE編集/表示メニューオプションを使用した、既存のテキストドキュメント、スプレッドシート、プレゼンテーションの表示と編集
* リアルタイムでドキュメントを共同編集：2つの共同編集モード（高速/厳格）、変更履歴、コメント、内蔵のチャット
* JWTサポートにより、適切な権限を持つユーザー以外がドキュメントにアクセスできないように、トラフィックを保護


**対応フォーマット**

* 作成、編集、閲覧用： docx, pptx, xlsx, docxf
* フォームへの入力用： OFORM
* Office Open XMLへの変換が可能：odt、doc、rtf、txt、odp、ppt、ods、xls、csv
* 閲覧用のみ：PDF


**バージョン2.1.0での新機能**

追加された機能：
* .docxfと.oform形式に対応しました
* ファイル作成メニューから空の.docxfを作成することができるようになりました
* ドキュメントマネージャーを使用して、.docxf ファイルから .oform ファイルを作成するオプションを追加しました
* メニュー更新：エディタの「名前を付けて保存」機能
* DE, ES, FR, IT, PT_BR, RU の翻訳を追加しました

すべての変更履歴は[こちら](https://github.com/ONLYOFFICE/onlyoffice-liferay/blob/master/CHANGELOG.md)でご覧になれます。

# ONLYOFFICE DocsとLiferayの接続について

**必要条件**
* ONLYOFFICE Docs（ドキュメントサーバー）6.0以降
Liferayとエンドクライアントの両方から解決可能で接続可能なONLYOFFICE Docsのインスタンスが必要です。また、Liferayに直接POSTできる必要があります。
:::note warn
ONLYOFFICE Docsのインストールについては、[公式ドキュメント](https://helpcenter.onlyoffice.com/installation/docs-index.aspx)のページをご参照ください。
:::

* Liferay CE Portal 7.2 GA1+、Liferay DXP 7.2 GA1+、Liferay CE Portal 7.3 GA1+、Liferay DXP 7.3 GA1+、Liferay CE Portal 7.4 GA1+ 
* ONLYOFFICEのLiferay用コネクタ v2.0.0 以降

**ONLYOFFICEのLiferay用コネクタのインストールについて**
ONLYOFFICEコネクタは、App Managerを使用するか、公式のLiferay App Storeからインストールすることができます。

App Manager を使用してインストールする場合。

* コントロールパネル → Apps → App Manager を開きます。
* Liferay のオプションアイコン![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/d345d3c7-6765-d5f9-4a19-d0e399daf73b.png)「Options」ボタンをクリックします。
* Upload ボタンをクリックします。
* 開いたウィンドウで、ONLYOFFICE アプリケーションファイルを選択します。

App Storeからコネクタをインストールする場合は：

* コントロールパネル → Apps → Store を開きます。
* Liferayアカウントでサインインします。
* ONLYOFFICEのLiferay用コネクタを検索します。
* アプリケーションを購入します（無料です）。

インストールが完了すると、アプリケーションを使用することができるようになります。

**Liferay用ONLYOFFICEコネクタの設定**
コントロールパネル → 設定 → システム設定に進みます。Platformセクションで、Connectorsカテゴリを選択し、ONLYOFFICEを選択します。
![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/b76f544a-d663-a43c-4b18-bf764edc531c.png)
ここでは、以下の設定を行うことができます。
* **ONLYOFFICE Docs アドレス** - Document Editing Service がインストールされている URL アドレスを指定します。
* **ONLYOFFICE Docs サーバからの内部リクエストのアドレス** - LiferayからDocument Editing Serviceにアクセスする際に使用されるアドレスを指定します。
* **ONLYOFFICE Docsからの内部リクエスト用サーバーアドレス** - Document Editing ServiceからLiferayにアクセスする際に使用するアドレスを指定します。
* **シークレットキー** - データの署名に使用するシークレットを指定します。詳細は、本記事のONLYOFFICEとLiferayの連携でJWTを有効にするをご覧ください。

統合アプリケーションの設定後、「**保存**」ボタンをクリックして、変更を適用します。

**ONLYOFFICEとLiferayの連携でJWTを有効にする**
不正なアクセスからドキュメントを保護するために、ONLYOFFICEエディタはJSON Web Token (JWT)を使用します。この**トークン**は、ドキュメントエディタが初期化されたとき、および内部のONLYOFFICE Docsサービス間でコマンドを交換する際に、設定に追加されます。**シークレットキー**は、ONLYOFFICE Docsへのリクエスト時に、JSONウェブトークンに署名し、トークンを検証するために使用されます。

ドキュメントを保護するためには、トークン検証を有効にし、ONLYOFFICE Docsの設定ファイルに独自のシークレットキーを指定し、コネクタ設定に同じシークレットキーを指定する必要があります。

**ステップ1：ONLYOFFICE Docsを設定する**

① 任意の利用可能なテキストエディタでlocal.jsonファイルを開いてください。
* Linuxの場合：`/etc/onlyoffice/documentserver/local.json`
* Windowsの場合：`%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json`
* Dockerの場合：`docker exec -it <containerID> bash`コマンドを使用してONLYOFFICE Docsコンテナに入り、`/etc/onlyoffice/documentserver/local.json`を開いてください。

② 3つのセクションで`false`の値を`true`に変更して、トークン検証を有効にします。
* `services.CoAuthoring.token.enable.browser`
* `services.CoAuthoring.token.enable.request.inbox`
* `services.CoAuthoring.token.enable.request.outbox`

③ 3つのセクションのsecret valueを独自のテキスト文字列に置き換えて、独自のシークレットキーを指定します。シークレットキーは同じでなければなりません。

* `services.CoAuthoring.secret.inbox.string`
* `services.CoAuthoring.secret.outbox.string`
* `services.CoAuthoring.secret.session.string`

```
{
  "services": {
    "CoAuthoring": {
      "token": {
        "enable": {
          "request": {
            "inbox": true,
            "outbox": true
          },
          "browser": true
        }
      },
      "secret": {
        "inbox": {
          "string": "yoursecret"
        },
        "outbox": {
          "string": "yoursecret"
        },
        "session": {
          "string": "yoursecret"
        }
      }
    }
  }
}
```
④ 変更内容を保存します。
⑤ 設定変更を有効にするために、サービスを再起動します。

```
supervisorctl restart all
```
**ステップ2：コネクタの設定で同じシークレットキーを指定する**

コネクタの設定で、シークレットキーの欄に同じシークレットを指定し、設定を保存してください。

# Liferay内でONLYOFFICE Docsの利用を開始します。

ファイルを作成するには：

① 文書とメディアセクションに移動します。
② Liferay の作成アイコン![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/6300664a-0de2-9263-dcc4-333a12017cdc.png)「Add File」ボタンをクリックします。
③ 開いたメニューで、「ONLYOFFICEで作成」ボタンをクリックします。
![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/d1cbf044-aeb7-8d97-8285-4001b1225420.png)
④ 開いたページで、ファイルの種類を選択し、必要に応じてタイトルと説明を指定します。
⑤ 「保存」ボタンをクリックします。
![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/8f0671b7-fb3f-033a-d35a-9b79f93c5f8a.png)
ファイルを編集するには
① **文書とメディア**セクションで必要なファイルを選択します。
② ドキュメントをクリックします。
③ 開いたメニューで、「**ONLYOFFFICEで編集**」ボタンをクリックします。
![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/1dca5c78-d94d-c399-ebb1-34f6cab70934.png)

フォームを作成するには：
① **文書とメディア**セクションに移動します。
② Liferay の作成アイコン![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/a8e4f96d-72c9-b70b-d01b-af9519ae7708.png)「**Add File**」ボタンをクリックします。
③ 開いたメニューで、「**ONLYOFFICEで作成**」ボタンをクリックします。
④ 「**フォーム**」オプションを選択し、必要に応じてファイルのタイトルと説明を指定します。
![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/0b7a8077-592c-4f4b-2c60-e72c058ca0d5.png)

⑤ 「**保存**」ボタンをクリックします。
⑥ フォームを .docxf として保存すると、将来、編集、改訂、共同作業にアクセスできます。

記入可能なフォームを作成し、他のユーザーによるファイルの編集を制限するには：

① .docxfファイルの右側にある「**その他**」アイコンをクリックします。
② 「**ONLYOFFICEでフォームを作成**」オプションを選択します。
![изображение.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655664/697be302-d10d-93b5-cade-afaa627775df.png)

:::note warn
フォームの詳細については、フォームの[作成](https://test-helpcenter.onlyoffice.com/onlyoffice-editors/onlyoffice-document-editor/UsageInstructions/CreateFillableForms.aspx)と[記入](https://test-helpcenter.onlyoffice.com/onlyoffice-editors/onlyoffice-document-editor/UsageInstructions/FillingOutForm.aspx)の対応する記事をお読みください。
:::