我正在尝试将用户删除请求发送到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()
我收到的错误提示如下: “错误:字段id.type为必填。”
errors:
[ { domain: 'global',
reason: 'required',
message: 'Field id.type is required.' } ]
这可能是一个非常愚蠢的问题,但是我不知道为什么要说id.type是必需的。我应该如何更改请求才能使其正常工作?
答案 0 :(得分:0)
我对node.js客户端一无所知。但是我的猜测是您需要将请求包装在requestBody中。这些值在帖子正文中发送,而不在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)
}
)
我希望那行得通。