仅在第一次请求时,Google Analytics数据Feed 400错误请求

时间:2016-01-11 18:18:39

标签: google-analytics google-analytics-api

我有一个继承的VB6程序,每天早上运行以下载多个客户端的Google Analytics Feed数据。该过程执行以下操作:

  1. 检查我当前的OAuth 2.0 Access Token(从昨天起保存在我的数据库中)是否已过期,如果是,则获取新的。当然,当程序每天第一次运行时,它会获得一个新的Access Token

  2. 对于每个客户,请发布Feed数据请求。

  3. 处理从Google服务器收到的XML数据。

  4. 我的问题在于上面的第2步。使用新Access Token的第一篇帖子总是因400 Bad Request错误而失败。使用完全相同的数据发表第二篇文章总是成功,我的程序可以转到第3步。

    以下是我的POST示例(在Access Token括号中包含客户ID和[ ]):

    https://www.google.com/analytics/feeds/data?
    ids=ga%3A[Client Id]&
    start-date=2016-01-10&
    end-date=2016-01-10&
    metrics=ga%3Asessions%2Cga%3Atransactions%2Cga%3AtransactionRevenue&
    dimensions=ga%3Amedium%2Cga%3Asource%2Cga%3Akeyword&
    filters=ga%3Asource%3D%3Dshopping&
    access_token=[Access Token]
    

    这种情况已持续数周。

    我的代码中的错误描述(Err.Description)是“400 Bad Request”。来自Google服务器的整个响应(较少的HTML)是“400.这是一个错误。您的客户发出了格式错误或非法的请求。这就是我们所知道的。”

    任何人都可以就第一个请求失败的原因提出任何建议,但后续请求却没有?我甚至在获取新Access Token和发出第一个数据请求之间建立了五分钟的延迟,但仍然得到400错误请求错误。

    非常感谢您提供的任何帮助。

    感谢。

1 个答案:

答案 0 :(得分:0)

使用Fiddler(谢谢M Schenkel)我终于能够找到问题的根源。

我的VB6程序正在使用IP * WORKS!来自nsoftware的SSL组件。该表单有一个HTTPS组件,用于(1)获取新的访问令牌,然后(2)获取源数据。

Fiddler表示该组件的第二次使用是使用了第一次使用它时的一些参数。

我在表单中添加了第二个HTTPS组件,因此我的Feed数据请求将从一个空白的平板开始,并且有效。

非常感谢你的帮助!