Agora.io:在云录制中获取 POST 调用 REST API 时遇到问题

Posted

技术标签:

【中文标题】Agora.io:在云录制中获取 POST 调用 REST API 时遇到问题【英文标题】:Agora.io : Having issue with acquire POST call REST API in cloud recording 【发布时间】:2020-08-17 12:29:35 【问题描述】:

我正在尝试在 Agora.io 视频通话中设置云录制。根据 agora docs 第一步是调用获取 API。 最初我遇到了未转义字符的问题是使用 axios NodeJS 的 URL,所以我使用 encodeURI 绕过该错误。我的请求配置如下


   "url":"https://api.agora.io%E2%80%8B/v1%E2%80%8B/apps%E2%80%8B/xxxxxxx_APPID_xxxx%E2%80%8B/cloud_recording%E2%80%8B/acquire",
   "method":"post",
   "data":"\"cname\":\"5f30xxxx-xx33-xxa9-adxx-xxxxxxxx\",\"uid\":\"75\",\"clientRequest\":\"resourceExpiredHour\":24",
   "headers":
      "Accept":"application/json, text/plain, */*",
      "Content-Type":"application/json;charset=utf-8",
      "Authorization":"Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "User-Agent":"axios/0.19.2",
      "Content-Length":102
   ,
   "transformRequest":[
      null
   ],
   "transformResponse":[
      null
   ],
   "timeout":0,
   "xsrfCookieName":"XSRF-TOKEN",
   "xsrfHeaderName":"X-XSRF-TOKEN",
   "maxContentLength":-1

我收到此回复 Error: Request failed with status code 400

我在agora控制台开启了云录制,还是同样的错误。

【问题讨论】:

【参考方案1】:

我建议您查看Agora Postman Collection,它有助于提供格式正确的请求。

在您的请求中,您缺少

例如,您的请求应如下所示:

var axios = require('axios');
var data = JSON.stringify("cname":"demo","uid":"527841","clientRequest": "resourceExpiredHour": 24);

var config = 
  method: 'post',
  url: 'https://api.agora.io/v1/apps/<xxxx_APPID_xxxx>/cloud_recording/acquire',
  headers:  
    'Content-Type': 'application/json', 
    'Authorization': 'Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  ,
  data : data
;

axios(config)
.then(function (response) 
  console.log(JSON.stringify(response.data));
)
.catch(function (error) 
  console.log(error);
);


这是我为 getting started with the Postman Collection for Agora's Cloud Recording 写的指南。

【讨论】:

以上是关于Agora.io:在云录制中获取 POST 调用 REST API 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

Agora.io 视频聊天创建活动

设置 agora.io 录制服务器时出现错误:20,stat_code:3

是否可以录制 Agora SDK 视频通话?

录制 Agora 时只获得一个屏幕

如何在 Android 中保存 agora 流?

Agora 云录制停止 api 总是给出 404 响应