标题:使用Excel的 VBA通过百度推广API提取数据的坑

-------------------------------------------------------------------------------------------------------------------------------

时间:2019/5/7 20:53:16

-------------------------------------------------------------------------------------------------------------------------------

内容:

今天花了4个小时 本来有代码都没问题

但是就是报错
{"header":{"desc":"system failure","failures":[{"code":8606,

始终无法解决这个 8606的错误
百度搜索了下贴吧的人
https://tieba.baidu.com/p/6036416059?red_tag=2811303554
也无法解决
又去看官方说明
我看了下百度的错误代码说明

http://dev2.baidu.com/newdev2/dist/index.html#/content/?pageType=1&productlineId=2&nodeId=193&pageId=112&url=
8606系统内部错误。API服务器系统升级时,或系统问题时会出现此错误。建议等待10分钟后重试。如仍有错误,请反馈给API小组。

还不得其解

我都对我的excel失去信心了
然后我会去看了下google sheet是没问题的可以选择成功
$data='{
    "header": {
        "token": "xxxxxxxx",
        "username": "xxxxx",
        "password": "xxxxxxx"
    },
    "body": {
        "realTimeRequestType": {
            "startDate":"2019/04/29 12:00:00",
            "endDate":"2019/05/05 12:00:00",
            "unitOfTime":8,
            "reportType":2,
            "levelOfDetails":2,
             "statIds":null,
            "performanceData":["impression","click","cost"]
        }
    }
}';

然后我又猜是编码格式问题
又去找了下urlencode代码但是没用
我又想是不是证书的为
又去找了很多大牛的证书的解决方法 还是无法解决
又去使用json工具去看post的数据格式是否正确

始终无法解决

最后我想到我之前写过php代码
于是我把同样的问题放到php代码去允许(之前php代码都可以正常运行 并且排除了encode问题以及hhttp证书问题)
但是神奇的是php的代码也是报同样的错

我百思不得琪姐

然后我就想到百度有官方的php代码库
我一个个去比对
然后发现原因百度的关于
日期的参数啊
需要带时间。。。
必须是
yyyy-mm-dd hh-mm-ss
这样的
我也是服气了
既报告开始时间 不能是"2019/05/05"
必须是"2019/05/05 12:00:00",
最后解决

总结解决问题的思路

遇到问题首先找报错代码
之前是json格式的问题 所以要我就使用json格式验证工具 跨过第一道坎
然后是猜测是编码问题,于是找到ulrcode编码 但是发现提示账户密码错误,所以不是中文的问题
然后就是不可描述的问题
这里我猜测的其他原因如 ssl证书等都无法验证 我就应该换到之前学习的php代码去解决(之前php已经解决了类似的问题)
所以当一条路走不通 就看看别的路 并且这条路可以排除你当前路的所有可能性
然后才发现 php也碰到问题  正式否定了所有可能
最后再想到有代码库案例 去找百度的官方包 才看到这个大坑

今天花了4个小时 本来有代码都没问题
但是就是报错
{"header":{"desc":"system failure","failures":[{"code":8606,

始终无法解决这个 8606的错误
百度搜索了下贴吧的人
https://tieba.baidu.com/p/6036416059?red_tag=2811303554
也无法解决
又去看官方说明
我看了下百度的错误代码说明

http://dev2.baidu.com/newdev2/dist/index.html#/content/?pageType=1&productlineId=2&nodeId=193&pageId=112&url=
8606系统内部错误。API服务器系统升级时,或系统问题时会出现此错误。建议等待10分钟后重试。如仍有错误,请反馈给API小组。

还不得其解

我都对我的excel失去信心了
然后我会去看了下google sheet是没问题的可以选择成功
$data='{
    "header": {
        "token": "xxxxxxxx",
        "username": "xxxxx",
        "password": "xxxxxxx"
    },
    "body": {
        "realTimeRequestType": {
            "startDate":"2019/04/29 12:00:00",
            "endDate":"2019/05/05 12:00:00",
            "unitOfTime":8,
            "reportType":2,
            "levelOfDetails":2,
             "statIds":null,
            "performanceData":["impression","click","cost"]
        }
    }
}';

然后我又猜是编码格式问题
又去找了下urlencode代码但是没用
我又想是不是证书的为
又去找了很多大牛的证书的解决方法 还是无法解决
又去使用json工具去看post的数据格式是否正确

始终无法解决

最后我想到我之前写过php代码
于是我把同样的问题放到php代码去允许(之前php代码都可以正常运行 并且排除了encode问题以及hhttp证书问题)
但是神奇的是php的代码也是报同样的错

我百思不得琪姐

然后我就想到百度有官方的php代码库
我一个个去比对
然后发现原因百度的关于
日期的参数啊
需要带时间。。。
必须是
yyyy-mm-dd hh-mm-ss
这样的
我也是服气了
既报告开始时间 不能是"2019/05/05"
必须是"2019/05/05 12:00:00",
最后解决

总结解决问题的思路

遇到问题首先找报错代码
之前是json格式的问题 所以要我就使用json格式验证工具 跨过第一道坎
然后是猜测是编码问题,于是找到ulrcode编码 但是发现提示账户密码错误,所以不是中文的问题
然后就是不可描述的问题
这里我猜测的其他原因如 ssl证书等都无法验证 我就应该换到之前学习的php代码去解决(之前php已经解决了类似的问题)
所以当一条路走不通 就看看别的路 并且这条路可以排除你当前路的所有可能性
然后才发现 php也碰到问题  正式否定了所有可能
最后再想到有代码库案例 去找百度的官方包 才看到这个大坑