Canva API

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データ

Untitled

NameTypeRequiredDescription

string

Yes

要求署名のコンマ区切りのリスト

string

Yes

Canvaがリクエストを送信したときのUNIXタイムスタンプ(秒単位)

5-2. JSONデータ(http body)

Untitled

NameTypeRequiredDescription

string

Yes

デザインを公開する前にユーザーが提供するメッセージ。(※この機能を使用するには、開発者ポータルから[カスタムメッセージが必要]を有効にします)

string

Yes

選択したコンテナのID

string

Yes

ユーザーのID

string

Yes

ユーザーのチームのID

string

Yes

リクエストを送信した拡張子のタイプ

Array<Asset>

Yes

アップロードするアセット

string

Yes

ユーザーのデザインのID(※このIDは難読化されており、ユーザーがデザインを再公開しても変更されません)

上記の「assets」項目のArray<Asset>のレイアウトは、下記のとおりとなります。

NameTypeRequiredDescription

string

Yes

アセットのファイル名(ファイルの拡張子が含まれています)

string

Yes

アセットのファイルタイプ(次のいずれか、"JPG", "PNG", "PDF", "PPTX")

string

Yes

アセットのURL

6. レスポンス

CanvaからのREST APIへのリクエストは、JSON形式でCanvaへ戻します。

6-1. 200 - Success

拡張機能が、公開されたアセットを宛先プラットフォームに正常にアップロードしたときに提供する応答。

Untitled

NameTypeRequiredDescription

"SUCCESS"

Yes

レスポンスのタイプ

string

No

アセットのファイルタイプ(次のいずれか、"JPG", "PNG", "PDF", "PPTX")

string

No

連携先で表示できるアセットのURL(ユーザーがアップロードしたファイルを確認するために使用)

6-2. レスポンス例

{
	type: 'SUCCESS',
}

6-3. 401 - シグネチャーまたはタイムスタンプが不正の場合

拡張機能は、すべての着信リクエストの[リクエストの署名とタイムスタンプを確認する]必要があります。拡張機能がこれらの値のいずれかを検証できない場合、 401ステータスコードでリクエストを拒否する必要があります。

7. Redirect

Untitled

PropertyTypeRequiredDescription

string

Yes

ユーザーチームのID

string

Yes

ユーザーが認証しようとしている拡張ポイント

string

Yes

要求署名のコンマ区切りのリスト

string

Yes

認証フローの最後にアプリがCanvaに返す必要のあるトークン

string

Yes

ユーザーが認証フローを開始したときのUNIXタイムスタンプ(秒単位)

string

Yes

ユーザーのID