Canvaのウェブ画面と貴方のシステムを繋げるためのAPI群が、Canva APIです。
1.拡張機能の種類
Canvaを機能拡張するには、下記の3点の方法があります。
(1) コンテンツ
貴方のサイトにあるコンテンツをCanvaで利用できるようにする拡張機能
(2) 編集
Canvaのコンテンツに新たな編集機能を追加
(3) パブリッシュ
Canvaのコンテンツを貴方のサイトにパブリッシュするための拡張機能
2.コンテンツ
<準備中>
3.編集
<準備中>
4.パブリッシュ
4-1. エンドポイント
Canvaは、貴方のサイトに次のエンドポイントがあることを期待しています。
・ /publish/resources/find
・ /publish/resources/get
・ /publish/resources/upload
4-2-1. find 機能の実装
デフォルトでは、find機能はONになっておりません。アプリのExtensionsメニューをクリックし、Publishを開いて、Display search fieldのチェックをONにすることで、有効になります。
4-2-1. get 機能の実装
4-2-3. upload 機能の実装
4-2-1. Flat list layout(フラットリストレイアウト)
5. Canvaから送られてくるデータ
5-1. POSTデータ
Name | Type | Required | Description |
|---|---|---|---|
X-Canva-Signatures | string | Yes | 要求署名のコンマ区切りのリスト |
X-Canva-Timestamp | string | Yes | Canvaがリクエストを送信したときのUNIXタイムスタンプ(秒単位) |
5-2. JSONデータ(http body)
Name | Type | Required | Description |
|---|---|---|---|
message | string | Yes | デザインを公開する前にユーザーが提供するメッセージ。(※この機能を使用するには、開発者ポータルから[カスタムメッセージが必要]を有効にします) |
parent | string | Yes | 選択したコンテナのID |
user | string | Yes | ユーザーのID |
brand | string | Yes | ユーザーのチームのID |
label | string | Yes | リクエストを送信した拡張子のタイプ |
assets | Array<Asset> | Yes | アップロードするアセット |
designId | string | Yes | ユーザーのデザインのID(※このIDは難読化されており、ユーザーがデザインを再公開しても変更されません) |
上記の「assets」項目のArray<Asset>のレイアウトは、下記のとおりとなります。
Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | アセットのファイル名(ファイルの拡張子が含まれています) |
type | string | Yes | アセットのファイルタイプ(次のいずれか、"JPG", "PNG", "PDF", "PPTX") |
url | string | Yes | アセットのURL |
6. レスポンス
CanvaからのREST APIへのリクエストは、JSON形式でCanvaへ戻します。
6-1. 200 - Success
拡張機能が、公開されたアセットを宛先プラットフォームに正常にアップロードしたときに提供する応答。
Name | Type | Required | Description |
|---|---|---|---|
type | "SUCCESS" | Yes | レスポンスのタイプ |
id | string | No | アセットのファイルタイプ(次のいずれか、"JPG", "PNG", "PDF", "PPTX") |
url | string | No | 連携先で表示できるアセットのURL(ユーザーがアップロードしたファイルを確認するために使用) |
6-2. レスポンス例
{
type: 'SUCCESS',
}6-3. 401 - シグネチャーまたはタイムスタンプが不正の場合
拡張機能は、すべての着信リクエストの[リクエストの署名とタイムスタンプを確認する]必要があります。拡張機能がこれらの値のいずれかを検証できない場合、 401ステータスコードでリクエストを拒否する必要があります。