# Can't integrate whiteboard

**URL:** <https://devforum.zoom.us/t/cant-integrate-whiteboard/103539>\
**Category:** Meeting SDK\
**Created:** [February 9, 2024, 9:47am UTC](https://devforum.zoom.us/t/cant-integrate-whiteboard/103539 "2024-02-09T09:47:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![sebas](https://avatars.discourse-cdn.com/v4/letter/s/ccd318/32.png) [@sebas](https://devforum.zoom.us/u/sebas)\
**Post date:** [February 9, 2024, 9:47am UTC](https://devforum.zoom.us/t/cant-integrate-whiteboard/103539/1 "2024-02-09T09:47:08Z")

</div>

zoom meetings sdk for web component view 3.1.2

Currently I have the meetings sdk set up via my app, this joins a meeting that I create with the meetings API which is authenticated via server-server OAuth2.0. On the oauth account I have enabled the scopes for whiteboard read and write but on calling POST [https://api.zoom.us/v2/whiteboards](https://api.zoom.us/v2/whiteboards) I get the response:

“{“error”:“Failed to create meeting. Status code: Unauthorized, Response: {"code":104, "message":"Invalid access token, does not contain scopes:["whiteboard:write"]"}”}”

I have enabled these scopes, and already used the same authentication process to create a meeting which is successful, on every API request I generate a new token which is fine on the meetings API.

How am I meant to resolve this if I already have the scopes allowed? I saw on another post someone had the same problem and it didn’t seem to get resolved … It also seems weird to me that it’s saying failed to create meeting when I’m trying to create a whiteboard

---

<div class="post-metadata">

**Author:** ![sehartalokar](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sehartalokar/32/56302_2.png) [@sehartalokar](https://devforum.zoom.us/u/sehartalokar)\
**Post date:** [February 9, 2024, 1:09pm UTC](https://devforum.zoom.us/t/cant-integrate-whiteboard/103539/2 "2024-02-09T13:09:20Z")

</div>

> [@sebas](#):
>
> Invalid

Review the Zoom documentation for the /v2/whiteboards endpoint: [Zoom Whiteboard](https://developers.zoom.us/docs/zoom-whiteboard/)  
Check Zoom Developer Forum for similar issues and solutions: [https://devforum.zoom.us/](https://devforum.zoom.us/)

---

<div class="post-metadata">

**Author:** ![sebas](https://avatars.discourse-cdn.com/v4/letter/s/ccd318/32.png) [@sebas](https://devforum.zoom.us/u/sebas)\
**Post date:** [February 9, 2024, 2:05pm UTC](https://devforum.zoom.us/t/cant-integrate-whiteboard/103539/3 "2024-02-09T14:05:21Z")

</div>

as mentioned in my question, I have already checked the forums and found 2 other people are having my same issue which never seemed to get resolved, here is my code below if it helps, scopes have been enabled for whiteboard read/write:

```auto
  [HttpGet]
  public ActionResult CreateWhiteboardTest()
  {
  
      GetToken();
  
      (HttpStatusCode statusCode, string content) = CreateWhiteboard();
  
      if (statusCode == HttpStatusCode.Created)
      {
          var whiteboardInfo = JsonConvert.DeserializeObject<ZoomCreateWhiteboardResponse>(content);
          return Json(new { whiteboardId = whiteboardInfo.whiteboard_id, whiteboardName = whiteboardInfo.whiteboard_name}, JsonRequestBehavior.AllowGet);
      } else
      {
          return Json(new { error = $"Failed to create meeting. Status code: {statusCode}, Response: {content}" }, JsonRequestBehavior.AllowGet);
      }
  }

```

where createwhiteboard is:

```auto
public (HttpStatusCode, string) CreateWhiteboard()
{
    var client = new RestClient($"https://api.zoom.us/v2/whiteboards");
    var request = new RestRequest();
    request.Method = Method.Post;

    request.AddHeader("Authorization", $"Bearer {_accessToken}");
    request.AddHeader("Content-Type", "application/json");
    
    var whiteboardDetails = new
    {
        name = "TestWhiteboard"
    };
    request.AddJsonBody(whiteboardDetails);
  
    try
    {
        var response = client.Execute(request);
        return (response.StatusCode, response.Content);
    }
    catch (Exception ex)
    {
        return (HttpStatusCode.InternalServerError, ex.Message);
    }
}

```

get token method updates the variable: private string \_accessToken; which works as I use this in the meetings API successfully

---

<div class="post-metadata">

**Author:** ![sebas](https://avatars.discourse-cdn.com/v4/letter/s/ccd318/32.png) [@sebas](https://devforum.zoom.us/u/sebas)\
**Post date:** [February 14, 2024, 9:43am UTC](https://devforum.zoom.us/t/cant-integrate-whiteboard/103539/4 "2024-02-14T09:43:10Z")

</div>

Zoom team, this is the third issue with this code on this forum that hasn’t be responded to or solved, I’m finding the support, particularly for Meeting SDK related questions, quite disappointing to say the least.
