Node.js:Google Analytics userDeletionAPI "Field id.type is required."
Node.js: Google Analytics userDeletionAPI "Field id.type is required."
我正在尝试向 node.js 中的 Google Analytics userDeletionAPI 发送用户删除请求。我正在使用 node.js 客户端:https://github.com/google/google-api-nodejs-client/
我的代码如下所示:
'use strict';
require('dotenv').config()
const {google} = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.user.deletion'
const jwt = new google.auth.JWT(process.env.CLIENT_EMAIL, null, process.env.PRIVATE_KEY.replace(/\n/g, '\n'), scopes)
const analytics = google.analytics({
version: 'v3',
auth: jwt
})
async function deleteUser() {
const res = await analytics.userDeletion.userDeletionRequest.upsert({
'kind': 'analytics#userDeletionRequest',
'id': {
'type': 'CLIENT_ID',
'userId': '555'
},
'webPropertyId': 'xxxxxxxxxx'
},
(err, result) => {
console.log(err, result)
}
)
}
deleteUser()
我得到的错误响应如下所示:
"Error: Field id.type is required."
errors:
[ { domain: 'global',
reason: 'required',
message: 'Field id.type is required.' } ]
这可能是一些非常愚蠢的问题,但我不明白为什么它说 id.type 是必需的。我应该如何更改请求以使其工作?
我对 node.js 客户端一无所知。但我的猜测是您需要将请求包装在 requestBody 中。这些值在 post 正文中发送,而不是在 URL 参数中发送。所以像这样:
const res = await analytics.userDeletion.userDeletionRequest.upsert({
'requestBody': {
'kind': 'analytics#userDeletionRequest',
'id': {
'type': 'CLIENT_ID',
'userId': '555'
},
'webPropertyId': 'xxxxxxxxxx'
},
},
(err, result) => {
console.log(err, result)
}
)
希望有用。
我正在尝试向 node.js 中的 Google Analytics userDeletionAPI 发送用户删除请求。我正在使用 node.js 客户端:https://github.com/google/google-api-nodejs-client/
我的代码如下所示:
'use strict';
require('dotenv').config()
const {google} = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.user.deletion'
const jwt = new google.auth.JWT(process.env.CLIENT_EMAIL, null, process.env.PRIVATE_KEY.replace(/\n/g, '\n'), scopes)
const analytics = google.analytics({
version: 'v3',
auth: jwt
})
async function deleteUser() {
const res = await analytics.userDeletion.userDeletionRequest.upsert({
'kind': 'analytics#userDeletionRequest',
'id': {
'type': 'CLIENT_ID',
'userId': '555'
},
'webPropertyId': 'xxxxxxxxxx'
},
(err, result) => {
console.log(err, result)
}
)
}
deleteUser()
我得到的错误响应如下所示: "Error: Field id.type is required."
errors:
[ { domain: 'global',
reason: 'required',
message: 'Field id.type is required.' } ]
这可能是一些非常愚蠢的问题,但我不明白为什么它说 id.type 是必需的。我应该如何更改请求以使其工作?
我对 node.js 客户端一无所知。但我的猜测是您需要将请求包装在 requestBody 中。这些值在 post 正文中发送,而不是在 URL 参数中发送。所以像这样:
const res = await analytics.userDeletion.userDeletionRequest.upsert({
'requestBody': {
'kind': 'analytics#userDeletionRequest',
'id': {
'type': 'CLIENT_ID',
'userId': '555'
},
'webPropertyId': 'xxxxxxxxxx'
},
},
(err, result) => {
console.log(err, result)
}
)
希望有用。