Discuss Scratch

gucha_gucha
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

CORSを避けてスクラッチのjsonを取得する方法を教えてください。
ito-noizi
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

Scratch JSON Loaderや、ターボワープを見ればわかります。
まず、
https://trampoline.turbowarp.org/proxy/projects/プロジェクトID
でプロジェクトの基本情報(プロジェクトトークンも含む)を取得できます。そして、
https://projects.scratch.mit.edu/プロジェクトID/?token=プロジェクトトークン
でプロジェクトJSONを取得できます。
tabakenn
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

とりあえず、Access-Control-Allow-Origin: * があれば、CORS が許可されるのですが、
多分古いAPI の https://api.scratch.mit.edu/projects/プロジェクトID/ はCORS が考慮されていないです。
https://projects.scratch.mit.edu/プロジェクトID/?token=プロジェクトトークン はAccess-Control-Allow-Origin: * を一緒に返してくれるので、CORS エラーを避けられますよ〜
ちなみに#322に書いてあるように、?token=プロジェクトトークン は必須です。
KRTSD0823
Scratcher
500+ posts

Scratch APIに対して理解を深めるトピック

こちら⤴
翻訳のAPIなんですが、Wiki⤴にあるURLで試してみても、「Hello」が翻訳された文字がresultに返されるわけではなく、言語の一覧が返されました。
現在は利用不可にでもなったのでしょうか?
一応載せておきます
{
"result": [
{
"code": "sq",
"name": "Albanian"
},
{
"code": "am",
"name": "Amharic"
},
{
"code": "ar",
"name": "Arabic"
},
{
"code": "hy",
"name": "Armenian"
},
{
"code": "az",
"name": "Azerbaijani"
},
{
"code": "eu",
"name": "Basque"
},
{
"code": "be",
"name": "Belarusian"
},
{
"code": "bg",
"name": "Bulgarian"
},
{
"code": "ca",
"name": "Catalan"
},
{
"code": "zh-tw",
"name": "Chinese (Traditional)"
},
{
"code": "hr",
"name": "Croatian"
},
{
"code": "cs",
"name": "Czech"
},
{
"code": "da",
"name": "Danish"
},
{
"code": "nl",
"name": "Dutch"
},
{
"code": "en",
"name": "English"
},
{
"code": "eo",
"name": "Esperanto"
},
{
"code": "et",
"name": "Estonian"
},
{
"code": "fi",
"name": "Finnish"
},
{
"code": "fr",
"name": "French"
},
{
"code": "gl",
"name": "Galician"
},
{
"code": "de",
"name": "German"
},
{
"code": "el",
"name": "Greek"
},
{
"code": "ht",
"name": "Haitian Creole"
},
{
"code": "hi",
"name": "Hindi"
},
{
"code": "hu",
"name": "Hungarian"
},
{
"code": "is",
"name": "Icelandic"
},
{
"code": "id",
"name": "Indonesian"
},
{
"code": "ga",
"name": "Irish"
},
{
"code": "it",
"name": "Italian"
},
{
"code": "ja",
"name": "Japanese"
},
{
"code": "kn",
"name": "Kannada"
},
{
"code": "ko",
"name": "Korean"
},
{
"code": "ku",
"name": "Kurdish (Kurmanji)"
},
{
"code": "la",
"name": "Latin"
},
{
"code": "lv",
"name": "Latvian"
},
{
"code": "lt",
"name": "Lithuanian"
},
{
"code": "mk",
"name": "Macedonian"
},
{
"code": "ms",
"name": "Malay"
},
{
"code": "ml",
"name": "Malayalam"
},
{
"code": "mt",
"name": "Maltese"
},
{
"code": "mi",
"name": "Maori"
},
{
"code": "mr",
"name": "Marathi"
},
{
"code": "mn",
"name": "Mongolian"
},
{
"code": "my",
"name": "Myanmar (Burmese)"
},
{
"code": "fa",
"name": "Persian"
},
{
"code": "pl",
"name": "Polish"
},
{
"code": "pt",
"name": "Portuguese"
},
{
"code": "ro",
"name": "Romanian"
},
{
"code": "ru",
"name": "Russian"
},
{
"code": "gd",
"name": "Scots Gaelic"
},
{
"code": "sr",
"name": "Serbian"
},
{
"code": "sk",
"name": "Slovak"
},
{
"code": "sl",
"name": "Slovenian"
},
{
"code": "es",
"name": "Spanish"
},
{
"code": "sv",
"name": "Swedish"
},
{
"code": "te",
"name": "Telugu"
},
{
"code": "th",
"name": "Thai"
},
{
"code": "tr",
"name": "Turkish"
},
{
"code": "uk",
"name": "Ukrainian"
},
{
"code": "uz",
"name": "Uzbek"
},
{
"code": "vi",
"name": "Vietnamese"
},
{
"code": "cy",
"name": "Welsh"
},
{
"code": "zu",
"name": "Zulu"
},
{
"code": "he",
"name": "Hebrew"
},
{
"code": "zh-cn",
"name": "Chinese (Simplified)"
}
]
}
Sky_Thunder
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#324
利用不可になったのかどうかは分かりませんが、全く同じ結果が返されるAPIがあります。
(ちなみに上で挙げたAPIはどこかで紹介されていたものではなく、拡張機能「翻訳」を使う時に通信を監視して見つけたものです)
KRTSD0823
Scratcher
500+ posts

Scratch APIに対して理解を深めるトピック

Sky_Thunder wrote:

#324
利用不可になったのかどうかは分かりませんが、全く同じ結果が返されるAPIがあります。
(ちなみに上で挙げたAPIはどこかで紹介されていたものではなく、拡張機能「翻訳」を使う時に通信を監視して見つけたものです)
supportedではなく、translateにすると使えるということですね。
無事使えました、ありがとうございます。
ryufox
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

パイソンのコードで、プロジェクトのクラウド変数を定期的に読み取るコードを教えていただきたいです 僕はパイソン初心者なのでなるべくわかりやすく教えてくれると嬉しいです。
kouryou118103
Scratcher
1000+ posts

Scratch APIに対して理解を深めるトピック

ネット(ここも)で取得したコードを理解せず実行するのは危険です。特にapiが絡んでくるのを実行するとアカウントが乗っ取られることもあります。注意してください。
「Python Scratch クラウド変数」と検索すると少しですが情報が出てくるのでそれを参考にしてみるといいと思います。
5-2kaito
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#330
なぜ至急なのでしょうか・・・
メッセージカウントを見るには、下のコードを使うことができます。
https://api.scratch.mit.edu/users/ユーザー名/messages/count
Mario-098
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#332

https://api.scratch.mit.edu/users/Mario-098/messages/count
のユーザー名のところに対象となるアカウント名を入力して置き換えます。
あとはそのぺージを開くと
{
    "count": (メッセージ数)
}
の様にメッセージ数が出てきます

(かぶってしまった。。。)

Last edited by Mario-098 (Feb. 20, 2024 11:33:18)

KRTSD0823
Scratcher
500+ posts

Scratch APIに対して理解を深めるトピック

#329
宣伝する(ユーザースクリプトについて話す)ことが禁止されており、使用する分には大丈夫です。文章をしっかりと読みましょう。(でなければ今頃消されてます)
ST(や誰か)の発言等を引用する時はQuoteを使ってください。

Last edited by KRTSD0823 (Feb. 20, 2024 11:57:33)

yu-yu0202
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

https://api.scratch.mit.edu/proxy/users/yu-yu0202/activity/count にアクセスすると、
This page contains the following errors:
error on line 1 at column 1: Start tag expected, ‘<’ not found
Below is a rendering of the page up to the first error.
というエラーが表示されるのですが、どういう意味でしょうか。また、解決法等ありますでしょうか。
(一応、https://api.scratch.mit.edu/users/yu-yu0202/messages/countを使えばいいのですが、どうしてもこれをつかいたいのです。)
Catapult-
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#337
ブラウザのアドレスバーに入力したところ、同じような表示が出ましたが、デベロッパーツールで確認すると正しく取得できていました。
念のため
//fetch('https://api.scratch.mit.edu/proxy/users/yu-yu0202/activity/count')
してみましたが、同様に正しくGETできていたので、システムの中で使う分には問題ないと思います。
ito-noizi
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

ブラウザはそのAPIをHTMLと認識し、表示しようとしているため、「開始タグの<がないよ!」というエラーを吐き出しているのが原因でしょう。
(実際はJSON形式になっている)
また、エラー内容を知りたいときは、一度機械翻訳してみるといいかもしれません。
KRTSD0823
Scratcher
500+ posts

Scratch APIに対して理解を深めるトピック

ito-noizi wrote:

ブラウザはそのAPIをHTMLと認識し、表示しようとしているため、「開始タグの<がないよ!」というエラーを吐き出しているのが原因でしょう。
(実際はJSON形式になっている)
ということは、ブラウザによっては可能・不可能もあるのですか?
yu-yu0202
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#338 #339
ありがとうございます!
ito-noizi
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

KRTSD0823 wrote:

ito-noizi wrote:

ブラウザはそのAPIをHTMLと認識し、表示しようとしているため、「開始タグの<がないよ!」というエラーを吐き出しているのが原因でしょう。
(実際はJSON形式になっている)
ということは、ブラウザによっては可能・不可能もあるのですか?
わたしはそのブラウザを知りませんが、有効なHTMLでない場合にその結果を表示するブラウザは技術的には難しくないと思います。
tabakenn
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

レスポンスに
Content-Type: application/xml
と書いて合ったので、ブラウザの未対応というよりは、このAPI が間違えて指定してるだけっぽいです。
gucha_gucha
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#340
IEなら設定を変換することで見ることができます。それ以外はきっと無理でしょう。もともとIEはサポートされなくなっているので、ほぼブラウザで観覧することは不可能と言ってもいいでしょう。
kyokyoro
Scratcher
100+ posts

Scratch APIに対して理解を深めるトピック

#340
以下の手順で可能です。
  1. 開発者ツール(DevTools)を開く
  2. ソース > オーバーライドの「ローカル オーバーライドを有効にする」にチェックを入れる
  3. ネットワーク > count > ヘッダーのContent-Typeを「application/xml」から「application/json」に変更
  4. 再読み込み
用事がすんだらチェックを外しておいてください。
Cromiumベースのブラウザで試しました。他は知りませんが、おそらくほとんどのメジャーなブラウザで行けると思います。

Powered by DjangoBB