云开发 /getOpenData

# cloudbase.getOpenData

> 本接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。

> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`

换取 cloudID 对应的开放数据

调用方式:

- [HTTPS 调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/cloudbase/cloudbase.getOpenData.html#method-http)
- [云调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/cloudbase/cloudbase.getOpenData.html#method-cloud)



## HTTPS 调用

### 请求地址

```text
POST https://api.weixin.qq.com/wxa/getopendata?openid=OPENID&access_token=TOKEN
```

### 请求参数

| 属性                                  | 类型           | 默认值 | 必填 | 说明                                                         |
| :------------------------------------ | :------------- | :----- | :--- | :----------------------------------------------------------- |
| openid                                | string         |        | 是   | 用户唯一标识符                                               |
| access_token / cloudbase_access_token | string         |        | 是   | [接口调用凭证](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html) |
| cloudid_list                          | Array.<string> |        | 是   | CloudID 列表                                                 |

### 返回值

### Object

返回的 JSON 数据包

| 属性      | 类型           | 说明         |
| :-------- | :------------- | :----------- |
| errcode   | number         | 错误码       |
| errmsg    | string         | 错误信息     |
| data_list | Array.<Object> | 开放数据列表 |

**errcode 的合法值**

| 值    | 说明                           | 最低版本 |
| :---- | :----------------------------- | :------- |
| 0     | 请求成功                       |          |
| -1    | 系统繁忙,此时请开发者稍候再试 |          |
| 40003 | openid无效                     |          |

### 请求数据示例

```json
{
 "cloudid_list": ["xxx"]
}
```

### 返回数据示例

假设获取了微信运动数据

```json
{
 "errcode": 0,
 "errmsg": "ok",
 "data_list": [{
   "cloud_id": "xxx",
   "json": {
     "cloudID": "xxx",
     "data": {
       "stepInfoList": [{
         "timestamp": 1603641600,
         "step": 1234
       }]
     }
   }
 }]
}
```



## 云调用

> [云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 `wx-server-sdk` 使用。

### 接口方法

```js
openapi.cloudbase.getOpenData
```

> 需在 `config.json` 中配置 `cloudbase.getOpenData` API 的权限,[详情](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#usage-3)

### 请求参数

| 属性        | 类型           | 默认值 | 必填 | 说明           |
| :---------- | :------------- | :----- | :--- | :------------- |
| openid      | string         |        | 是   | 用户唯一标识符 |
| cloudidList | Array.<string> |        | 是   | CloudID 列表   |

### 返回值

### Object

返回的 JSON 数据包

| 属性     | 类型           | 说明         |
| :------- | :------------- | :----------- |
| errCode  | number         | 错误码       |
| errMsg   | string         | 错误信息     |
| dataList | Array.<Object> | 开放数据列表 |

**errCode 的合法值**

| 值   | 说明 | 最低版本 |
| :--- | :--- | :------- |
| 0    | 成功 |          |

### 异常

### Object

抛出的异常

| 属性    | 类型   | 说明     |
| :------ | :----- | :------- |
| errCode | number | 错误码   |
| errMsg  | string | 错误信息 |

**errCode 的合法值**

| 值    | 说明                           | 最低版本 |
| :---- | :----------------------------- | :------- |
| -1    | 系统繁忙,此时请开发者稍候再试 |          |
| 40003 | openid无效                     |          |

### 请求数据示例

```js
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.cloudbase.getOpenData({
        "cloudidList": [
          "xxx"
        ]
      })
    return result
  } catch (err) {
    return err
  }
}
```

### 返回数据示例

假设获取了微信运动数据

```json
{
  "errCode": 0,
  "errMsg": "openapi.cloudbase.getOpenData:ok",
  "dataList": [
    {
      "json": {
        "cloudID": "xxx",
        "data": {
          "stepInfoList": [
            {
              "timestamp": 1603641600,
              "step": 1234
            }
          ]
        }
      },
      "cloudId": "xxx"
    }
  ]
}
```