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 |
---|---|---|---|
string | Yes | 要求署名のコンマ区切りのリスト | |
string | Yes | Canvaがリクエストを送信したときのUNIXタイムスタンプ(秒単位) |
5-2. JSONデータ(http body)
Name | Type | Required | Description |
---|---|---|---|
string | Yes | デザインを公開する前にユーザーが提供するメッセージ。(※この機能を使用するには、開発者ポータルから[カスタムメッセージが必要]を有効にします) | |
string | Yes | 選択したコンテナのID | |
string | Yes | ユーザーのID | |
string | Yes | ユーザーのチームのID | |
string | Yes | リクエストを送信した拡張子のタイプ | |
Array<Asset> | Yes | アップロードするアセット | |
string | Yes | ユーザーのデザインのID(※このIDは難読化されており、ユーザーがデザインを再公開しても変更されません) |
上記の「assets」項目のArray<Asset>のレイアウトは、下記のとおりとなります。
6. レスポンス
CanvaからのREST APIへのリクエストは、JSON形式でCanvaへ戻します。
6-1. 200 - Success
拡張機能が、公開されたアセットを宛先プラットフォームに正常にアップロードしたときに提供する応答。
6-2. レスポンス例
{
type: 'SUCCESS',
}
6-3. 401 - シグネチャーまたはタイムスタンプが不正の場合
拡張機能は、すべての着信リクエストの[リクエストの署名とタイムスタンプを確認する]必要があります。拡張機能がこれらの値のいずれかを検証できない場合、 401ステータスコードでリクエストを拒否する必要があります。
7. Redirect
Property | Type | Required | Description |
---|---|---|---|
string | Yes | ユーザーチームのID | |
string | Yes | ユーザーが認証しようとしている拡張ポイント | |
string | Yes | 要求署名のコンマ区切りのリスト | |
string | Yes | 認証フローの最後にアプリがCanvaに返す必要のあるトークン | |
string | Yes | ユーザーが認証フローを開始したときのUNIXタイムスタンプ(秒単位) | |
string | Yes | ユーザーのID |