misskey-dev / misskey

🌎 An interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
9.78k stars 1.31k forks source link

HTTPリクエストをするAiScript API #8851

Open ThinaticSystem opened 2 years ago

ThinaticSystem commented 2 years ago

Summary

Misskey組み込みのAiScript関数としてJavaScriptのFetch APIのようなHTTPリクエストをしてリソースを取得するAPIがほしいです。
AiScriptからHTTPリクエストを送ることができれば、REST APIを叩いて取得したデータをAiScriptで利用することなどができるようになります。
またウィジェットにIoT家電を操作するボタンを置くなどの一般ユーザー向けの活用も考えられます。

REST APIを使うことを考えた際に、現状のAiScript on MisskeyではMisskeyのブラウジングコンテキスト内で直接外部のAPIをリクエストすることはできません。裏技としてPlugin:open_url(url)でブラウザー別タブからAPIのエンドポイントを開くことでGETリクエストのみ送信することが可能ですが、返ってきた値をAiScriptで利用することはできませんし「別タブでAPIレスポンスが表示される」→「タブを閉じてMisskeyに戻る」のはユーザビリティーの観点からちょっぴり微妙です。
そのためデータを取得するAPIとしてFetch APIのようなものがあれば素敵だと思います。

現在ほにクラブで試験的に動かしているものでMk:fetch()として以下の実装があります。
https://github.com/ThinaticSystem/honisskey/pull/71

futchitwo commented 2 years ago

Pagesとかで実行できると、Pagesにアクセスしたユーザーの情報をMk:apiで取得して任意のサーバーに転送とかできてしまいそうなので、実行できる範囲を指定したほうがいいのではと思います

(例えばPlugin:open_urlはプラグインでしか実行できない)