尝试使用Google Blogger API OAuth2创建帖子时发生SessionExpiredException

塞格普拉什

我正在使用以下代码更新现有博客文章。我正在获取SessionExpiredException。我究竟做错了什么?

    GoogleService service = new BloggerService("MyBloggerIntegration-v1");        
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = com.google.api.client.json.jackson2.JacksonFactory.getDefaultInstance();

    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            httpTransport, jsonFactory, CLIENT_ID, CLIENT_SECRET,
            Arrays.asList("https://www.googleapis.com/auth/blogger"))
            .setAccessType("offline")               
            .setApprovalPrompt("auto").build();

    String url = flow.newAuthorizationUrl().setRedirectUri(REDIRECT_URI).build();
    System.out.println("Please open the following URL in your "
            + "browser then type the authorization code:");
    System.out.println("  " + url);
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String code = br.readLine();
    GoogleTokenResponse response = flow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute();        
    System.out.println("Response : "+response.toPrettyString());
    service.setOAuth2Credentials(new GoogleCredential().setFromTokenResponse(response));

     Entry myEntry = new Entry();
     myEntry.setTitle(new PlainTextConstruct(title));
     myEntry.setContent(new PlainTextConstruct(content));
     URL postUrl = new URL("http://www.blogger.com/feeds/" + blogID + "/posts/default/"+postID);
     service.update(postUrl, myEntry);

输出 :

 Please open the following URL in your browser then type the authorization code:
 https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=auto&client_id=67330569820-unio63db63ljnloc1hd52bvcoj8g8vrr.apps.googleusercontent.com&redirect_uri=http://cegcodingcamp.blogspot.in&response_type=code&scope=https://www.googleapis.com/auth/blogger
 4/d_1GaJe4lHpOdRmhidwWgC7_utKoqfbwXnfYoP2hR_c#
 Response : {
    "access_token" : "ya29.MQJqQi7HqTcJGoCCU-Lo5Ybdb1Otc-Z_fsAN97oySVsU84A7IXr_cPqWcrMe2raZoSvU",
    "expires_in" : 3591,
    "token_type" : "Bearer"
 }
 Exception in thread "main" com.google.gdata.client.GoogleService$SessionExpiredException: Unauthorized
 User does not have permission to edit object

at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:570)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
at com.google.gdata.client.Service.update(Service.java:1563)
at com.google.gdata.client.Service.update(Service.java:1530)
at com.google.gdata.client.GoogleService.update(GoogleService.java:604)
at line service.update(postUrl, myEntry)

我也尝试了以下方法

方法2:

    service = new GoogleService("blogger", "exampleCo-exampleApp-1");
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    com.google.api.client.json.jackson2.JacksonFactory jacksonFactory = com.google.api.client.json.jackson2.JacksonFactory.getDefaultInstance();

    Credential credential = new GoogleCredential.Builder()
            .setTransport(httpTransport)
            .setJsonFactory(jacksonFactory)
            .setServiceAccountId("xxxx.apps.googleusercontent.com")
            .setServiceAccountPrivateKeyFromP12File(new File("resources/xxxx.p12"))
            .setServiceAccountScopes(Collections.singleton("https://www.googleapis.com/auth/blogger"))
            .build();
    service.setOAuth2Credentials(credential);

方法3:

    service = new GoogleService("blogger", "exampleCo-exampleApp-1");           
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = com.google.api.client.json.jackson2.JacksonFactory.getDefaultInstance();
    List<String> collection = new ArrayList<String>();
    collection.add("https://www.googleapis.com/auth/blogger");

    GoogleCredential credential = new GoogleCredential.Builder()
            .setTransport(httpTransport)                
            .setJsonFactory(jsonFactory)
            .setServiceAccountId("xxxx.apps.googleusercontent.com")
            .setServiceAccountPrivateKeyFromP12File(
              new File("resources\\xxxx.p12"))
            .setServiceAccountScopes(collection)
            .build();

    credential.setAccessToken("ya29.MQJqQi7HqTcJGoCCU-Lo5Ybdb1Otc-Z_fsAN97oySVsU84A7IXr_cPqWcrMe2raZoSvU");
    service.setOAuth2Credentials(credential);

但是我也遇到同样的例外。

塞格普拉什

似乎不支持Blogger API的V2。我们必须使用V3 API。

下载后导入Jars:http : //developers.google.com/blogger/docs/3.0/api-lib/java

然后按照以下答案进行操作:使用Java Blogger API v3在博客上动态发布

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列出所有使用Blogger API的帖子

来自分类Dev

使用Blogger API插入的某些帖子未显示在主页上

来自分类Dev

使用 Google Apps 脚本在 Blogger 中创建帖子

来自分类Dev

使用Java验证自己的Blogger API的Google帐户

来自分类Dev

使用Java验证自己的Blogger API的Google帐户

来自分类Dev

使用JS Blogger API v3,如何按升序对帖子进行排序?

来自分类Dev

Blogger API-如何在插入新帖子时添加标签?

来自分类Dev

Google Api返回“您的项目未启用API(Blogger API)”。即使我已在控制台中启用了Blogger API

来自分类Dev

Google Api返回“您的项目未启用API(Blogger API)”。即使我已在控制台中启用了Blogger API

来自分类Dev

将Blogger API转换为Google Apps脚本AuthO

来自分类Dev

Blogger API示例代码

来自分类Dev

如何使用api v3在Blogger上发布

来自分类Dev

使用python Blogger API时Status参数不起作用

来自分类Dev

使用 Blogger API 找不到最新的谷歌博客

来自分类Dev

Google OAuth2 API

来自分类Dev

为Google Blogger模板中的循环准备所有帖子?

来自分类Dev

Blogger API缺少内容数据

来自分类Dev

如何用博客文章附加图像-Google Blogger API-C#-VB.Net

来自分类Dev

使用oAuth2时缺少Google表格api密钥

来自分类Dev

使用Java / App Engine向Blogger发送API的正确形式-错误401

来自分类Dev

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

来自分类Dev

结合使用Blogger API和PHP设置说明,草稿和永久链接

来自分类Dev

Google OAuth2 API刷新令牌

来自分类Dev

根据订单获取Blogger帖子

来自分类Dev

根据订单获取Blogger帖子

来自分类Dev

Blogger API突然出现权限不足错误

来自分类Dev

Blogger Api V3中的分页

来自分类Dev

Google API-OAuth 2.0-尝试使用curl获取AccessToken

来自分类Dev

创建帖子时遇到Google plusDomains Rest API的解析错误问题

Related 相关文章

  1. 1

    列出所有使用Blogger API的帖子

  2. 2

    使用Blogger API插入的某些帖子未显示在主页上

  3. 3

    使用 Google Apps 脚本在 Blogger 中创建帖子

  4. 4

    使用Java验证自己的Blogger API的Google帐户

  5. 5

    使用Java验证自己的Blogger API的Google帐户

  6. 6

    使用JS Blogger API v3,如何按升序对帖子进行排序?

  7. 7

    Blogger API-如何在插入新帖子时添加标签?

  8. 8

    Google Api返回“您的项目未启用API(Blogger API)”。即使我已在控制台中启用了Blogger API

  9. 9

    Google Api返回“您的项目未启用API(Blogger API)”。即使我已在控制台中启用了Blogger API

  10. 10

    将Blogger API转换为Google Apps脚本AuthO

  11. 11

    Blogger API示例代码

  12. 12

    如何使用api v3在Blogger上发布

  13. 13

    使用python Blogger API时Status参数不起作用

  14. 14

    使用 Blogger API 找不到最新的谷歌博客

  15. 15

    Google OAuth2 API

  16. 16

    为Google Blogger模板中的循环准备所有帖子?

  17. 17

    Blogger API缺少内容数据

  18. 18

    如何用博客文章附加图像-Google Blogger API-C#-VB.Net

  19. 19

    使用oAuth2时缺少Google表格api密钥

  20. 20

    使用Java / App Engine向Blogger发送API的正确形式-错误401

  21. 21

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

  22. 22

    结合使用Blogger API和PHP设置说明,草稿和永久链接

  23. 23

    Google OAuth2 API刷新令牌

  24. 24

    根据订单获取Blogger帖子

  25. 25

    根据订单获取Blogger帖子

  26. 26

    Blogger API突然出现权限不足错误

  27. 27

    Blogger Api V3中的分页

  28. 28

    Google API-OAuth 2.0-尝试使用curl获取AccessToken

  29. 29

    创建帖子时遇到Google plusDomains Rest API的解析错误问题

热门标签

归档