# API呼び出し時のメールアドレスのURIエンコーディングの混乱

**URL:** https://meta.discourse.org/t/uri-encoding-confusion-of-email-addresses-when-making-api-calls/228647
**Category:** Development
**Created:** [2022 年 5 月 31 日午後 5:38 UTC](https://meta.discourse.org/t/uri-encoding-confusion-of-email-addresses-when-making-api-calls/228647 "2022-05-31T17:38:53Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![mjkkirschner](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mjkkirschner/32/262148_2.png) [@mjkkirschner](https://meta.discourse.org/u/mjkkirschner)
#### Post date: [2022 年 5 月 31 日午後 5:38 UTC](https://meta.discourse.org/t/uri-encoding-confusion-of-email-addresses-when-making-api-calls/228647/1 "2022-05-31T17:38:54Z")

</div>

こんにちは。

Discourse を使用してフォーラムを管理しており、次のようなリクエストを行う自動化ツールがあります。

```plaintext
agent.get(`${this.baseUrl}/admin/users/list/all.json?email=${emailAddress}`)

```

最近、これらのメールアドレスの 1 つに `%` 文字が含まれている問題を見つけました。エンコードされていない文字が原因で、GET リクエストが失敗したと思われます。

`[encodeURI](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI)` をメール文字列に使用することを検討しましたが、Discourse が一致するメールをクエリする前にデコードしない可能性があり、誤検出につながるのではないかと心配しています。

GitHub のソースを確認しましたが、Ruby やリポジトリに詳しくないため、確信が持てません。

`admin/users/list/all` ルートに渡されるメールアドレスに `encodeURI` を使用しても安全ですか？ Discourse はクエリを行う前にパラメータをデコードしますか？
