以编程方式从Google+检索我的所有活动

时间:2012-06-12 03:38:18

标签: java google-api google-plus

我正在尝试编写一个程序来从Google+中检索我的所有活动。我研究了Google提供的示例代码并编写了我的程序:

// Fetch the available activities
Plus.Activities.List listActivities = plus.activities().list("me", "public");

listActivities.setMaxResults(20L);

ActivityFeed feed;
try {
  feed = listActivities.execute();
} catch (HttpResponseException e) {
  log.severe(Util.extractError(e));
  throw e;
}
// Keep track of the page number in case we're listing activities
// for a user with thousands of activities. We'll limit ourselves
// to 5 pages
int currentPageNumber = 0;
String token = "";
while (token != null && feed != null && feed.getItems() != null && currentPageNumber < 5) {
  currentPageNumber++;

  System.out.println();
  System.out.println("~~~~~~~~~~~~~~~~~~ page "+currentPageNumber+" of activities ~~~~~~~~~~~~~~~~~~");
  System.out.println();

  for (Activity activity : feed.getItems()) {

    show(activity);
    System.out.println();
    System.out.println("------------------------------------------------------");
    System.out.println();
  }

  // Fetch the next page
  token = feed.getNextPageToken();
  System.out.println("next token: " + token);
  listActivities.setPageToken(token);
  feed = listActivities.execute();
} 

问题是这只允许我检索我的“公共”活动。我也有一些私人活动,这个计划没有得到它们。问题与

有关
plus.activities().list("me", "public");

此列表函数需要输入参数,列出的活动集合。在这里,它是“公开的”。我想要检索所有活动而不仅仅是公共活动。但基于

https://developers.google.com/+/api/latest/activities/list

要列出的此活动集合的唯一可用输入是“public”。所以我的问题是:

  1. 是否可以通过编程方式从Google+检索我的所有活动(包括公开活动和非公开活动)?
  2. 如果可能,我该如何使用Java?
  3. 非常感谢!

2 个答案:

答案 0 :(得分:2)

官方Google+ API仅提供对公共数据的只读访问权限。所以,你只能使用“公共”作为活动的集合。

答案 1 :(得分:1)

通过授权,您只获得这两个范围。

- 了解您在Google上的身份 https://www.googleapis.com/auth/plus.me

- 查看您的电子邮件地址 https://www.googleapis.com/auth/userinfo.email

如您所见,它不会打开对非公开活动的访问权。

API页面说明了

'collection'的可接受值是: “public” - 指定用户创建的所有公共活动。

参考: Google+ API页面。无法在这里链接到它。