API
OneScrip の API を使うと、自社のシステムやスクリプトから投稿(アイテム)を追加できます。画像や動画を付けた投稿にも対応しています。
APIキーを発行する
- OneScrip のダッシュボードで、サイドバーの「APIキー」を開く
- 「新しいキーを作成」をクリック
- わかりやすいラベルを入力し、権限で「アイテム(投稿・画像・動画)の追加」にチェックを入れる
- 「作成」をクリックし、表示されたシークレットをコピーする
シークレットは作成直後に一度だけ表示されます。OneScrip にも保存されないため、あとから確認することはできません。紛失した場合はキーを削除して、新しく発行してください。
- APIキーを発行・削除できるのは、プロジェクトのオーナーと管理者です
- 発行できるキーの数はプランによって異なります
- キーは発行したプロジェクトのデータにだけアクセスできます
基本
| 項目 | 内容 |
|---|---|
| ベースURL | https://api.onescrip.com/v1 |
| 認証 | Authorization: Bearer <APIキー> または X-API-Key: <APIキー> ヘッダー |
| レート制限 | APIキーごとに 60 リクエスト/分 |
| レスポンス形式 | JSON |
APIキーはパスワードと同じように扱ってください。サーバーやスクリプトなど、安全な場所からのみ利用してください。ブラウザ上の JavaScript からの呼び出し(CORS)には対応していません。
コンテンツ一覧を取得する
GET /contents
プロジェクトのコンテンツ一覧を返します。投稿を追加するときに指定する id を確認するのに使います。
curl https://api.onescrip.com/v1/contents \
-H "Authorization: Bearer $ONESCRIP_API_KEY"
{
"contents": [
{
"id": "6f1c2a4e-....",
"name": "公式アカウントの投稿",
"description": null,
"type": "social",
"folderId": null
}
]
}
投稿を追加できるのは type が social のコンテンツだけです。
投稿を追加する
POST /contents/{contentId}/items
テキストだけの投稿は JSON で、画像や動画のファイルを付ける場合は multipart/form-data で送ります。
| パラメーター | 型 | 説明 |
|---|---|---|
value | 文字列(必須) | 投稿本文。1000 文字以内 |
key | 文字列 | 任意の識別用キー |
images | ファイル | 画像ファイル。JPEG / PNG / WebP / GIF、1 枚 5MB まで |
imageUrls | 文字列の配列 | 画像の URL。OneScrip が画像を取得して保存します |
video | ファイル | 動画ファイル。MP4 / WebM / MOV / AVI、50MB まで |
videoUploadId | 文字列 | 大きな動画をアップロードしたときの ID(後述) |
videoThumbnail | ファイル | 動画のサムネイル画像。省略すると動画から自動で作成します |
- 画像は
imagesとimageUrlsを合わせて 4 枚まで、動画は 1 本まで付けられます - 1 つの投稿に画像と動画を両方付けることはできません
- 画像は WebP に変換して保存されます
成功すると 201 で作成した投稿の ID が返ります。
{ "id": "0b8d5c1f-...." }
テキストだけの投稿
curl -X POST https://api.onescrip.com/v1/contents/$CONTENT_ID/items \
-H "Authorization: Bearer $ONESCRIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"value": "新商品のお知らせです"}'
画像付きの投稿
curl -X POST https://api.onescrip.com/v1/contents/$CONTENT_ID/items \
-H "Authorization: Bearer $ONESCRIP_API_KEY" \
-F "value=新商品のお知らせです" \
-F "images=@./photo1.jpg" \
-F "images=@./photo2.png"
画像 URL を指定する場合は JSON で送れます。
curl -X POST https://api.onescrip.com/v1/contents/$CONTENT_ID/items \
-H "Authorization: Bearer $ONESCRIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"value": "新商品のお知らせです", "imageUrls": ["https://example.com/photo.jpg"]}'
動画付きの投稿
30MB 程度までの動画は、そのまま添付して送れます。
curl -X POST https://api.onescrip.com/v1/contents/$CONTENT_ID/items \
-H "Authorization: Bearer $ONESCRIP_API_KEY" \
-F "value=動画付きの投稿です" \
-F "video=@./movie.mp4"
大きな動画をアップロードする
1 リクエストで送れるサイズには上限(約 32MB)があります。それより大きい動画(最大 50MB)は、次の 3 ステップで送ってください。
1. アップロード先の URL を発行する
POST /contents/{contentId}/video-uploads
curl -X POST https://api.onescrip.com/v1/contents/$CONTENT_ID/video-uploads \
-H "Authorization: Bearer $ONESCRIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contentType": "video/mp4", "size": 41943040}'
contentType には video/mp4、video/webm、video/quicktime、video/x-msvideo のいずれかを、size にはファイルのバイト数を指定します。
{
"uploadId": "3e7a9b20-....",
"uploadUrl": "https://storage.googleapis.com/....",
"method": "PUT",
"headers": {
"Content-Type": "video/mp4",
"Cache-Control": "private, max-age=0",
"x-goog-if-generation-match": "0"
}
}
2. 動画ファイルをアップロードする
uploadUrl に、返ってきた headers をすべて付けて、ファイルを PUT します。ヘッダーを省略するとアップロードに失敗します。
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: video/mp4" \
-H "Cache-Control: private, max-age=0" \
-H "x-goog-if-generation-match: 0" \
--data-binary @./movie.mp4
3. 投稿を追加する
videoUploadId に手順 1 の uploadId を指定します。
curl -X POST https://api.onescrip.com/v1/contents/$CONTENT_ID/items \
-H "Authorization: Bearer $ONESCRIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"value": "動画付きの投稿です", "videoUploadId": "3e7a9b20-...."}'
アップロード用の URL は発行から 15 分で無効になります。
エラー
エラーのときは、次の形式でメッセージが返ります。
{ "error": "Invalid API key" }
| ステータス | 意味 | 主な原因 |
|---|---|---|
400 | 入力が正しくない | 本文が空、ファイル形式やサイズが対象外、画像と動画を両方指定した |
401 | 認証に失敗した | APIキーがない、または削除済み・誤っている |
403 | 実行できない | キーに権限がない、プランの投稿数やストレージの上限に達した |
404 | 見つからない | コンテンツの ID が誤っている、または別プロジェクトのもの |
429 | リクエストが多すぎる | レート制限を超えた。少し待ってから再試行してください |
よくある質問
追加した投稿はすぐに配信されますか?
API で追加した投稿は、ダッシュボードで追加した場合と同じようにコンテンツに登録されます。配信のタイミングは、コンテンツの投稿設定やスケジュールに従います。
APIキーが漏れてしまった場合は?
ダッシュボードの「APIキー」から該当するキーを削除してください。削除したキーはすぐに使えなくなります。