当前位置: 首页 > 知识库问答 >
问题:

如何从Google Ads API修复无效的JSON有效负载错误

訾稳
2023-03-14

我试图将一个报告从Google Ads API拉到Google sheets中,但我无法让API将我的查询识别为查询

    function basicReport() {
  var query = {
    "query" : "SELECT campaign.name, campaign.status FROM campaign ORDER BY campaign.id"
  };
  
  var body = JSON.stringify(query);
  
  var head = {
    'Developer-token' : "<Dev token>",
    'login-customer-id' : <Manager ID>,
    'Authorization' : "Bearer <Auth token>",
  };

var options = {
  'method' : 'POST',
  'content-type': 'application/json',
  'headers' : head,
  'payload' : body,
  'muteHttpExceptions' : true
};
  
var response = UrlFetchApp.fetch('https://googleads.googleapis.com/v4/customers/<Customer ID>/googleAds:searchStream', options);
  var json = response.getContentText();
  var data = JSON.parse(json);
"error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"{\"query\":\"SELECT campaign.name, campaign.status FROM campaign ORDER BY campaign.id\"}\": Cannot bind query parameter. Field '{\"query\":\"SELECT campaign' could not be found in request message.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "description": "Invalid JSON payload received. Unknown name \"{\"query\":\"SELECT campaign.name, campaign.status FROM campaign ORDER BY campaign.id\"}\": Cannot bind query parameter. Field '{\"query\":\"SELECT campaign' could not be found in request message."

共有1个答案

满昊然
2023-03-14

万一还有人在找这个-我确实解决了。

当设置在标题中时,Content-Type有一个破折号,当设置在选项中时,contentType没有。

function basicReport() {
     var query = {
        "query" : "SELECT campaign.name, campaign.status FROM campaign ORDER BY campaign.id"
     };
  
     var body = JSON.stringify(query);
  
     var head = {
        'developer-token' : "<Dev token>",
        'login-customer-id' : "<Manager ID>",
        'authorization' : "Bearer <Auth token>",
        'accept' : 'application/json'
        'Content-Type': 'application/json',
     };

    var options = {
        'method' : 'POST',
        'headers' : head,
        'payload' : body,
        'muteHttpExceptions' : true
    };
  
    var response = UrlFetchApp.fetch('https://googleads.googleapis.com/v4/customers/<Customer ID>/googleAds:searchStream', options);
    var json = response.getContentText();
    var data = JSON.parse(json);

    Logger.log(data);
 类似资料:
  • 我有一个spring boot service(2.4.5)显示了一个checkmarx错误,我们需要清理请求有效负载。我们如何对请求有效载荷进行消毒? 对于“@RequestBody final MyInput Input”,我得到以下checkmarx错误消息: 我想消毒我的有效载荷。或者除了使用DTO,然后将其转换为我的数据库实体之外,没有其他选择

  • 问题内容: 从2gis API中,我获得了以下JSON字符串。 但是Python无法识别它: 期望的分隔符:第1行第3646列(字符3645) 似乎用引号引起问题:“标题”:“中心“ ADVANCE”” 如何在Python中自动修复它? 问题答案: @Michael的回答给了我一个主意……这不是一个很漂亮的主意,但是它似乎可以工作,至少在您的示例中有效:尝试解析JSON字符串,如果失败,则查找失败

  • 从2GIS API中,我得到了以下JSON字符串。 但Python并不认可: 应为,分隔符:第1行列3646(字符3645) 我如何在Python中自动修复它?

  • 我有包含非法字符的json 我想要从服务器spring发送到客户端的明文,这样客户端就可以获得完整的数据。 如何将字符串的非法字符替换为有效的json对象?

  • 如果我创建一个JWT令牌,有效负载中应该有哪些数据?我在网上查找了一些示例和解释,有些人将密码放在JWT中,有些人没有。 现在我正在传递以下数据: 将散列密码放入JWT有效负载感觉不对,因为JWT将被放置在前端应用程序中。它应该在那里吗? 最佳实践是什么?

  • 我正在使用OAuth谷歌API,我收到。这与客户端 ID 或客户端机密代码无关,因为我确信我完美地复制了密钥。我再次创建了一个新凭据,以确保它不是Google API的问题,但错误仍然存在。当我运行服务器时,我也不会在控制台中收到任何错误。有人可以帮助我吗? 这是我从浏览器收到的内容: 这是我代码的一部分: 谢谢!:)