概要
NeosVR の API からユーザー情報を取得する必要があって、ちょっとしたスクリプトを書いて取得したときのメモです。
公式の情報は ネットワークに関する情報 に書いてあることだけっぽいですが、
API 自体は公式には公開されてない [※要出典] らしいので、この記事の情報は別に正しくないです。
API
Neos の API は api.neos.com
を使うと良さそうです。
www.neosvr-api.com
とか cloudx.azurewebsites.net
とかを叩いても同じ結果 [※未確認] が帰ってくるっぽいですが、どう違うのかはよくわかりません。
API ドキュメントは公開されていません。しかし、 PolyLogix Studio という有志のグループ? がまとめている非公式のものがあります。確認したくなったらこれを見るのがよいかと思います。
To @neos_vr Creators interested in using the api, We are now hosting a knowledge base created using our 2 years of experience.
— PolyLogiX@NeosVR (@PolyLogixVR) 2021年10月30日
Please note this is a Community Project and the API may/will change at Any time. We will keep the docs up to date.https://t.co/bt8XEij7VV#NeosVR #API
ユーザー情報の取得
ユーザーIDは、多くの場合 U-[ユーザー名]
になるんですが、ハイフン-
やアンダーバー_
などのような記号、日本語などが混じっていた場合はその限りではありません。
ユーザー名から情報を検索したい場合は
https://api.neos.com/api/users/[ユーザー名]?byUserName=true
を叩きます。マルチバイト文字の場合はURIエンコードしてください。
ぼくの情報が知りたい場合は
https://api.neos.com/api/users/yoshi1123_?byUserName=true
にアクセスするとわかります。
ユーザーIDがわかっている場合は、 https://api.neos.com/api/users/[ユーザーID]
を見ます。ぼくの場合はユーザーIDが U-yoshi1123-
なので、 https://api.neos.com/api/users/U-yoshi1123-
を見れば丸わかりです。
上記2つの方法で帰ってくる形式は同じで、下記のようになります。
内容が推測できるものだけコメントを書いてます。
{ "id":"U-yoshi1123-", /* ユーザーID */ "username":"yoshi1123_", /* ユーザー名 */ "normalizedUsername":"yoshi1123_", "registrationDate":"2021-05-18T09:23:47.9666713Z", /* Neos のアカウントを作成した日 */ "isVerified":true, "quotaBytes":-1, "isLocked":false, "supressBanEvasion":false, "usedBytes":-1, "2fa_login":false, "tags":[ "neos festa 3 participant" ], "profile":{ "iconUrl":"neosdb:///b818988b835d17093c81636a3344d0f47ea3316f10ce8fcca5cd5a3afb2243b9.webp" /* プロフィールアイコンの画像 */ }, "patreonData":{ /* Patreon の情報(Patreon 連携してない場合は無いっぽい) */ "isPatreonSupporter":true, "lastPatreonPledgeCents":-1, "lastTotalCents":-1, "minimumTotalUnits":-1, "externalCents":-1, "lastExternalCents":-1, "hasSupported":true, "lastIsAnorak":false, "priorityIssue":0, "lastPlusActivationTime":"2021-09-01T16:55:54.5170223Z", "lastActivationTime":"2021-09-01T16:55:54.5170223Z", "lastPlusPledgeAmount":-1, "lastPaidPledgeAmount":-1, "accountName":"Standard Account", "currentAccountType":0, "currentAccountCents":-1, "pledgedAccountType":0 } }
ちなみに、ユーザー名の前方一致で検索する API も存在します。
https://api.neos.com/api/users/?name=[ユーザー名]
結果は配列で帰ってきます。順序はよくわからないので、ユーザー名がわかっている場合は上の API を使うのがよいです。(最初の1件が完全一致したユーザーにならない場合があります。orangeさんとか)