提供: Japanese Scratch-Wiki

Scratch APIから転送)

Archive.png この項目またはセクションには、Scratch 3.0の現行バージョンに含まれていない機能が記載されています。これは歴史的な観点からのみ有用です。
Document stub.png この項目は、書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています。

このきじは ひらがなのページがありません。ごめんなさい。

Scratch APIを使うと、Scratchに関するさまざまなデータが取得できる。

各項目の「リクエスト例」のURLへアクセスすることで実際に試す事ができる。

目次

パラメーター

  • 一覧を返すJSON APIにおいて、?limit=数字にて、個数制限ができる。
  • 一部のAPIは、?offset=数字にて、範囲指定ができる。
Warning メモ: 実際に帰ってくるコードはインデントなどの成型はされていない。

api.scratch.mit.edu

api.scratch.mit.eduは、最新のScratch APIである。このAPIのURLは次の通り:

https://api.scratch.mit.edu

GET /

リクエスト例

GET https://api.scratch.mit.edu

応答例 {"website":"scratch.mit.edu","api":"api.scratch.mit.edu","help":"help@scratch.mit.edu"}

サーバーの状態

GET /health

Scratchのサーバーの状態を返す。

リクエスト例

GET https://api.scratch.mit.edu/health

応答例

ニュース

GET /news

トップページScratchニュースの情報を返す。

リクエスト例

GET https://api.scratch.mit.edu/news

応答例

GET /projects/count/all

共有されているプロジェクトの総数を返す。

リクエスト例

GET https://api.scratch.mit.edu/projects/count/all

応答例 {"count":22850560}

プロキシ

GET /proxy/featured

トップページに表示されているプロジェクトの情報を返す。

リクエスト例

GET https://api.scratch.mit.edu/proxy/featured

応答例

GET /proxy/users/<username>/activity

プロフィールページの「私が行ったこと」セクションの内容を返す。

リクエスト例

GET https://api.scratch.mit.edu/proxy/users/abee/activity

応答例

GET /proxy/users/<username>/activity/count (廃止)

未読メッセージの個数を返す。

リクエスト例

GET https://api.scratch.mit.edu/proxy/users/Paddle2See/activity/count

応答例

{
  "msg_count": 14
}

ユーザー

GET /users/<username>

ユーザーのアカウント情報を返す。

リクエスト例

GET https://api.scratch.mit.edu/users/apple502j

応答例

GET /users/<username>/favorites

お気に入り」を押したプロジェクトの詳細を配列で返す。

リクエスト例

GET https://api.scratch.mit.edu/users/ScratchCat/favorites

応答例

GET /users/<username>/followers

ユーザーの最新のフォロワーの配列を返す。

リクエスト例

GET https://api.scratch.mit.edu/users/thisandagain/followers

応答例

GET /users/<username>/following

ユーザーがフォローしているユーザーのうち、直近5件を配列で返す。

リクエスト例

GET https://api.scratch.mit.edu/users/Paddle2See/following

応答例

GET /users/<username>/messages/count

ユーザーの未読メッセージ数を返す。

リクエスト例

GET https://api.scratch.mit.edu/users/Paddle2See/messages/count

応答例

{
  "count": 14
}

GET /users/<username>/studios/curate/

ユーザーが旧レーションしているスタジオの情報を返す。

リクエスト例

GET https://api.scratch.mit.edu/users/ScratchCat/studios/curate/

応答例

GET /users/<username>/projects

ユーザーが共有したプロジェクトの情報を返す。

リクエスト例

GET https://api.scratch.mit.edu/users/ScratchCat/projects

応答例

プロジェクトの統計

GET /projects/<project_id>/

リクエスト例

GET https://api.scratch.mit.edu/projects/103530008

応答例: 上記に同じ。

GET /projects/<project_id>/remixes/

リクエスト例

GET https://api.scratch.mit.edu/projects/103530008/remixes/

応答例

GET /projects/<project-id>/studios/

リクエスト例

GET https://api.scratch.mit.edu/projects/103530008/studios/

応答例

コメントAPI

GET /projects/<project-id>/comments/

リクエスト例

GET https://api.scratch.mit.edu/projects/103530008/comments/

応答例

GET /project/<project-id>/comments/<parent-id>/replies/

リクエスト例

GET https://api.scratch.mit.edu/projects/203791193/comments/98229863/replies/

応答例

-->

教師用アカウントAPI

GET /classrooms/<classroom-id>/

リクエスト例

GET https://api.scratch.mit.edu/comments/project/203791193/98229863/

応答例

検索

qパラメータがない場合、人気のものが返るので注意。

GET /search/projects/?q=<word>

検索条件に当てはまるプロジェクトの情報を配列で返す。

リクエスト例

GET https://api.scratch.mit.edu/search/projects?q=Japan

応答例

GET /search/studios?q=<word>

検索条件に当てはまるスタジオの情報を配列で返す。

リクエスト例

GET https://api.scratch.mit.edu/search/studios?q=Wiki

応答例

ユーザー名API

GET /accounts/check_username/<word>

「username exists」(すでに存在)「bad username」(検閲)「invalid username」(無効)「valid username」(使用可能)を返す。

リクエスト例

GET https://scratch.mit.edu/accounts/check_username/UnavailableUser/

応答例

リクエストのエラー

存在しないリソースへアクセスすると、以下のような連想配列が返される。

{
  "code":"NotFound",
  "message":""
}


scratch.mit.edu/site-api

GET /comments/gallery/<studio_id>/

コメントを取得する。

リクエスト例

GET https://scratch.mit.edu/site-api/comments/gallery/5342/

GET /comments/project/<project_id>/

コメントを取得する。

リクエスト例

GET https://scratch.mit.edu/site-api/comments/project/103345354/

GET /comments/user/<username>/

コメントを取得する。

リクエスト例

GET https://scratch.mit.edu/site-api/comments/user/thisandagain/

PUT /users/followers/<username>/add/

フォローする。

リクエスト例

PUT https://scratch.mit.edu/site-api/users/followers/abee/add/

PUT /users/lovers/<project_id>/add/

「好き」を入れる。

リクエスト例

PUT https://scratch.mit.edu/site-api/users/lovers/154080544/add/

PUT /users/favoriters/<project_id>/add/

「お気に入り」にする。

リクエスト例

PUT https://scratch.mit.edu/site-api/users/favoriters/154080544/add/

PUT /users/all/<username>

「私について」「私が取り組んでいること」の変更。

リクエスト例

PUT https://scratch.mit.edu/site-api/users/all/apple502j

必要なヘッダー

X-CSRFTokenというヘッダーに、トークンを設定する。トークンはCookieの「scratchcsrftoken」を参照すればいい。また、X-Requested-WithにはXMLHttpRequestを指定する。

Cookieは、scratchcsrftokenとscratchsessionsidが必要だ。

varserver api (廃止)

クラウド変数のAPI。

GET /<project_id>

クラウド変数の情報を返す。

リクエスト例

GET https://scratch.mit.edu/varserver/16805451

応答例

{
  "variables": [
    {
      "name": "☁ たたかれた回数",
      "value": "2546"
    }
  ],
  "lists": []
}

api/v1 API (使用不可)

GET /

リクエスト例

GET https://scratch.mit.edu/api/v1/

応答例

{
  "project": {
    "list_endpoint": "/api/v1/project/",
    "schema": "/api/v1/project/schema/"
  },
  "projecttag": {
    "list_endpoint": "/api/v1/projecttag/",
    "schema": "/api/v1/projecttag/schema/"
  },
  "tag": {
    "list_endpoint": "/api/v1/tag/",
    "schema": "/api/v1/tag/schema/"
  },
  "user": {
    "list_endpoint": "/api/v1/user/",
    "schema": "/api/v1/user/schema/"
  }
}

GET /project/<project_id>/

リクエスト例

GET https://scratch.mit.edu/api/v1/project/178040314

応答例

GET /project/set/<project_ids>/

リクエスト例

GET https://scratch.mit.edu/api/v1/project/set/169147225;178040314/

応答例

GET /user/<username>/

リクエスト例

GET https://scratch.mit.edu/api/v1/user/mres/

応答例

GET /user/set/<usernames>/

現在使用できない。

リクエスト例

GET https://scratch.mit.edu/api/v1/user/set/ScratchCat;thisandagain/

応答例

{
  "objects": [
    {
      "username": "ScratchCat",
      "userprofile": ""
    },
    {
      "username": "thisandagain",
      "userprofile": ""
    }
  ]
}

プロジェクト素材のAPI

プロジェクトのJSON

ブロックのハッキングに使うJSONと同じものが返る。

リクエスト例

GET https://projects.scratch.mit.edu/internalapi/project/102747129/get/

応答例

素材

リクエスト例

GET https://cdn.assets.scratch.mit.edu/internalapi/asset/5e037aca5446a7e57093e45fe6f18c9e.svg/get/

応答例