# Server-to-Server OAuth (invalid\_client)

**URL:** <https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513>\
**Category:** API and Webhooks\
**Tags:** api, s2s-oauth\
**Created:** [September 21, 2023, 8:45am UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513 "2023-09-21T08:45:45Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![hidemune](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/hidemune/32/52173_2.png) [@hidemune](https://devforum.zoom.us/u/hidemune)\
**Post date:** [September 21, 2023, 8:45am UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/1 "2023-09-21T08:45:45Z")

</div>

* * *

### Format Your New Topic as Follows:

**API Endpoint(s) and/or Zoom API Event(s)**  
_Link the API endpoint(s) and/orZoom API Event(s) you’re working with to help give context._

[https://zoom.us/oauth/token](https://zoom.us/oauth/token)

**Description**  
_Details on your question, workflow or the problem you’re trying to solve._

Server-to-Server OAuth アプリを作成しました。

${Client ID}:${Client Secret}  
に基づいて、

echo “M7YWZ4-XXXX:SHBB-XXXXXXXXXXXXXXXXXX” | base64  
のようにして、以下の文字列を得ました。

TTdZV1o0ZEJRcnllMEI5bDRVXXXXXX=

以下のコマンドを実行すると、エラーが出ます。(invalid\_client)

$ curl -X POST [https://zoom.us/oauth/token](https://zoom.us/oauth/token) -d ‘grant\_type=account\_credentials’ -d ‘account\_id=wTQ5JXXXXXXX’ -H ‘Host: [zoom.us](http://zoom.us)’ -H ‘Authorization: Basic TTdZV1o0ZEJRcnllMEI5bDRVXXXXXX=’

{“reason”:“Invalid client\_id or client\_secret”,“error”:“invalid\_client”}

何が間違っているのでしょうか？

**Error?**  
_The full error message or issue you are running into, where applicable._

{“reason”:“Invalid client\_id or client\_secret”,“error”:“invalid\_client”}

**How To Reproduce**  
_Steps to reproduce the behavior:_  
_1. Request URL / Headers **(without credentials or sensitive info like emails, uuid, etc.)** / Body_  
_2. Authentication method or app type_  
_3. Any errors_

上で説明したとおりですが、  
各キーの詳細はXXXXで消してあります。

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [September 21, 2023, 8:57pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/2 "2023-09-21T20:57:35Z")

</div>

Hi @hidemune ,

Please try generating your token using either our sample app:

[GitHub - zoom/server-to-server-oauth-token: Utility script to generate a Zoom Server-to-Server Oauth Token and copy to clipboard](https://github.com/zoom/server-to-server-oauth-token)

Or Postman workspace: [Postman](https://www.postman.com/zoom-developer/workspace/zoom-public-workspace/folder/22097587-0021aa9e-17f5-478e-b106-dfb31b930153)

---

<div class="post-metadata">

**Author:** ![hidemune](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/hidemune/32/52173_2.png) [@hidemune](https://devforum.zoom.us/u/hidemune)\
**Post date:** [September 21, 2023, 9:42pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/4 "2023-09-21T21:42:59Z")

</div>

ありがとうございます。

> **[GitHub - zoom/server-to-server-oauth-token: Utility script to generate a Zoom...](https://github.com/zoom/server-to-server-oauth-token/tree/master)**
>
> master

こちらを試してみました。

```auto
$ node --version
v12.22.9

$ export NODE_ENV='development'

$ node s2s.js
file:///home/user/git/Server-to-Server-Oauth-Token/s2s.js:9
const IS_PROD = process.env.NODE_ENV?.toString().toLowerCase().trim() === 'production';
                                     ^

SyntaxError: Unexpected token '.'

```

NODE\_ENV?.  
この部分でエラーになります。NodeJSの環境作成方法に誤りがあるのでしょうか？

---

<div class="post-metadata">

**Author:** ![hidemune](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/hidemune/32/52173_2.png) [@hidemune](https://devforum.zoom.us/u/hidemune)\
**Post date:** [September 21, 2023, 9:57pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/5 "2023-09-21T21:57:52Z")

</div>

> $ nvm install v18.18.0

これで動きました。トークンが取得できました。  
ありがとうございます。前進しました。

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [September 22, 2023, 3:57am UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/6 "2023-09-22T03:57:56Z")

</div>

@hidemune please try the below

> [@hidemune](#):
>
> ```auto
> echo “M7YWZ4-XXXX:SHBB-XXXXXXXXXXXXXXXXXX” | base64
> 
> ```

Please try this below  
`echo -n “M7YWZ4-XXXX:SHBB-XXXXXXXXXXXXXXXXXX” | base64`

> [@hidemune](#):
>
> ```auto
> curl -X POST https://zoom.us/oauth/token -d ‘grant_type=account_credentials’ -d ‘account_id=wTQ5JXXXXXXX’ -H ‘Host: [zoom.us](http://zoom.us/)’ -H ‘Authorization: Basic TTdZV1o0ZEJRcnllMEI5bDRVXXXXXX=’
> 
> ```

Please try this below  
`curl -X POST "https://zoom.us/oauth/token" -d 'grant_type=account_credentials' -d 'account_id= wTQ5JXXXXXXX' -H 'Authorization: Basic TTdZV1o0ZEJRcnllMEI5bDRVXXXXXX='`

---

<div class="post-metadata">

**Author:** ![hidemune](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/hidemune/32/52173_2.png) [@hidemune](https://devforum.zoom.us/u/hidemune)\
**Post date:** [September 22, 2023, 4:23am UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/7 "2023-09-22T04:23:32Z")

</div>

上手く行きました！

ありがとうございます！！

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [September 23, 2023, 4:24am UTC](https://devforum.zoom.us/t/server-to-server-oauth-invalid-client/95513/8 "2023-09-23T04:24:04Z")

</div>

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.
