ONLYOFFICE’s diary

OSSドキュメントエディタの使い方やヒントをご紹介します

ONLYOFFICE Docs Advanced API:ドキュメントのコメントフィードを一元管理

この記事では、APIを使ってドキュメントからコメント付きのフィードを生成し、エディタボタンの代わりに独自のボタン/メソッドを使ってコメントをナビゲートしたり、コメントに返信したり、コメントを閉じたりできるようにする方法をご紹介します。

https://www.onlyoffice.com/blog/wp-content/uploads/2022/10/ONLYOFFICE-connector-class.jpg

簡単な紹介

新しく追加された Connector API クラスは、文書、スプレッドシート、プレゼンテーション、および記入可能なフォームを外部から操作することができます。この方法では、カスタム インターフェイスをドキュメントに直接リンクし、その中で任意のアクションを実行できる特別なコネクタを作成することができます。

https://www.onlyoffice.com/blog/wp-content/uploads/2022/10/connector.png

想定されるシナリオやケース

  • 全文書のコメントフィードを一元管理する
  • データベースからエクスポートしたデータを使って、フォームに自動的に入力する
  • 外部からのレビュープロセスの管理(提案された変更の受け入れ/拒否)
  • などなど…

開始方法

Connector APIクラスはAdvanced APIに含まれ、ONLYOFFICE Docs Developer Editionのバージョン7.2以降の新しいビルドで利用可能です。そのため、まずこのオプションが含まれたONLYOFFICE Docs Developer Editionの新しいライセンスを取得する必要があります(APIへのアクセスセクションで、Advancedオプションを選択します)。

ライセンスを購入する

まずは試してみたいという方は、ONLYOFFICE Docs Developer Editionの30日間の新規トライアルを開始するか、弊社営業(sales@onlyoffice.com)までデモのご依頼をお願いします。また、専任の営業担当者に直接ご連絡いただくことも可能です。

今すぐダウンロード

必要条件

コメント フィードを実装し、独自のボタン/メソッドを使用してコメントで作業するには、Connector を作成する必要があります。これを行うには、ドキュメント エディタ オブジェクトの createConnector メソッドを使用します:

var connector = docEditor.createConnector()

ここでは Connector で使用できる最も重要なメソッドを紹介します。

  • attachEvent は、以前はプラグインからしか利用できなかったイベントリスナーを追加することができます。完全なリストはこちらでご覧になれます。その中には、コンテンツ コントロールの変更 (onChangeContentControl) や要素のクリック (onClick) などのイベントが含まれます。
  • callCommand は、ドキュメントビルダースクリプトを実行して、ドキュメントを構築したり修正したりすることができます。 1,500 以上のメソッドが Builder Document スクリプトによって提供され、それらはすべて Connector で実行できるようになります。ドキュメント、スプレッドシート、およびプレゼンテーションのメソッドのリストは、ここで入手できます。
  • executeMethodにより、コネクタを使用して特定のエディタ・メソッドを実行することができます。これらのメソッドは、複雑なドキュメント・ビルダー・コマンドのセットを実行します。また、純粋なドキュメント・ビルダー・コマンドとは異なり、エディタ内のフォーカス位置と関連しています。例えば、GetSelectedText メソッドは選択されたコンテンツを取得することができ、MoveToComment メソッドはコメントにフォーカスを移動させることができます。

ステップ・バイ・ステップの実装

以下の操作に従い、指定されたコマンドを実行することで、文書外のコメントを一元的に管理することができます。

文書内の全コメントを取得するには:

connector.executeMethod("GetAllComments", null, function(comments) { /**/ })

カーソルでハイライトされている要素に新しいコメントを追加します。

connector.executeMethod("AddComment",[{Text: comment, UserName: userName, Time: datetime}]);

既存のコメントを修正します。

connector.executeMethod("ChangeComment", [commentId, newData]);

既存のコメントを削除します。

connector.executeMethod("RemoveComments", [commentId]);

変更コメントイベントを購読します。

connector.attachEvent("onAddComment",  function (comment) { /**/ })

コメント追加イベントを購読します。

connector.attachEvent("onAddComment",  function (comment) { /**/ })

コメント削除イベントを購読します。

connector.attachEvent("onRemoveComment",  function (data) { /**/ })

この例は、新しいAdvanced APIが、あなたのプログラムコードを通してドキュメントを変更し、制御するための複数の能力を提供することを示しています。

私たちは、利用可能なメソッドやイベントのリストを常に拡張していくつもりです。しかし、特定のタスクやリクエストがあるにもかかわらず、それに適したドキュメントのメソッドが見つからない場合は、ぜひ私たちにお知らせください。専任のサポートまたは営業担当者に直接ご連絡いただくか、sales@onlyoffice.com のメールアドレスをご利用ください。

APIアップデートに関するウェビナーで、開発者向けの最新の機能強化について詳しくご紹介しています。

youtu.be

お役立ちリンク