使用Java blogger API v3动态发布在博客上

时间:2014-11-24 22:34:10

标签: java google-api google-oauth blogger google-api-java-client

关于使用Java blogger API v3动态地将帖子发布到我的博客帐户,我有两个问题。

首先

我使用以下代码获取访问我博客的凭据:

GoogleCredential credential = new GoogleCredential.Builder()
                .setTransport(httpTransport)                
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId(emailAddress)
                .setServiceAccountPrivateKeyFromP12File(
                new File(p12FileLocation))
                .setServiceAccountScopes(Collections.singleton(BloggerScopes.BLOGGER))
                .build();

        credential.setAccessToken("zRLqmkM82626Uym9Uv1Jsdd");


        Blogger blogger = new Blogger.Builder(httpTransport, JSON_FACTORY, credential)
                .setApplicationName("Blogger")
                .build();
        // .... rest of the code to prepare post and send it ......

我设置了从以下google页面生成的访问令牌(credential.setAccessToken):https://developers.google.com/oauthplayground

但此令牌每3600秒过期一次。所以我再次访问该页面并按下“刷新访问令牌”按钮以获取另一个并在上面的代码中再次使用它。

这是访问我的博客并以编程方式动态发布内容和文章的正确方法吗?

第二

在谷歌开发者控制台https://developers.google.com/console中,我看到我每天有10000个请求,每秒请求数限制为1个/用户

BUT

在使用我的上述代码动态正确发布约50个帖子后(注意我在连续请求之间设置等待大约5秒),我开始从api调用中收到以下错误:

{
  "code" : 403,
  "errors" : [ {
    "domain" : "usageLimits",
    "message" : "Rate Limit Exceeded",
    "reason" : "rateLimitExceeded"
  } ],
  "message" : "Rate Limit Exceeded"
}

我返回到我的配额页面,我发现我发送的请求并没有从我每天允许的请求中减少!!!

我的第二个问题是:

我是否忘记了动态正确操作博客的具体配置?

提前感谢您的帮助和支持。

1 个答案:

答案 0 :(得分:1)

没有办法为Blogger预先授权某人,所以我认为访问Blogger Api的唯一方法是通过Auth 2 Playground生成访问令牌,然后使用令牌进行API调用。

即使它在控制台上显示10000个请求/天和1个请求/秒/用户的限制,但事实是Blogger api默认情况下每天最多只允许50个请求。一段时间后,有条款要求额外的配额,通过指定现已停止的真正需求。