viewer_idとuser_idの間に + を加え、文字列を結合し、さらに暗号化を施したもの。
暗号化については、Cryptographer を参照されたい。
{
'viewer_id': 0,
'user_id': 0,
'name': 'Kosen Taro'
}
データはAPI毎に中身が異なり、上記のものはSignUpの例である。
{
'data_headers': {
'viewer_id': 0,
'user_id': 0,
'timestamp': 1601046969,
'result_code': 1
},
'data': []
}
data_headers
とdata
からなり、ともに Map(Dictionary) の形になる。
上記の例ではdata
の中身が空なので、 Array の形をとる。
data
はAPIによって中身が異なるため、各APIのレスポンスを参照のこと。
APIに必要なパラメータ以外は無視されることに注意。
int viewer_id
: ユーザのviewer_id、GETリクエストの場合、0に固定される。int user_id
: ユーザのuser_id、viewer_idと同様にGETリクエストの場合、0に固定される。int timestamp
: サーバのUNIX時間。int result_code
: リクエストに対するリザルトコード
詳しくはリザルトコード一覧を参照されたい。
USER-IDで利用されている暗号化アルゴリズム。
実装自体は非常に単純なものとなっている。
文字列を1文字ずつ読んでいき、ASCIIコードに変換し10を足す。さらにASCIIコードを文字に戻し、文字の前後に 1~9 のランダムな数字を結合し、新しい文字列を生成する。
以下、Pythonでの実装例。
def encode(s: str) -> str:
new_s = ''
for i in range(0, len(s)):
new_s += str(random.randrange(10)) \
+ chr(ord(s[i]) + 10) \
+ str(random.randrange(10))
return new_s
文字列を2文字目から3文字飛ばしながら(2文字分無視しながら)読んでいき、ASCIIコードに変換し10を引く。さらにASCIIコードを文字に戻し、新しい文字列の最後尾に結合する。
以下、PHPでの実装例。
function encode(string $s): string
{
$new_s = "";
for ($i = 1; $i < strlen($s); $i += 3) {
$new_s .= chr(ord($s[$i]) - 10);
}
return $new_s;
}
メソッド : GET
APIType : Information
備考 : バージョンなどの情報を取得
int version
: APIサーバのバージョン
メソッド : POST
APIType : SignUp
備考 : ユーザデータの登録
int viewer_id
: 適当な整数で初期化int user_id
: 適当な整数で初期化string name
: 任意のユーザ名
空配列
result_code | APIType | 説明 |
---|---|---|
1 | All | サーバとの通信に成功 |
201 | SignUp | ユーザデータの登録に失敗 |