我试图编写一个程序来从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
要列出的此活动集合的唯一可用输入是"公共"。所以我的问题是:
- 是否可以以编程方式从 Google+ 检索我的所有活动记录(公开和非公开活动记录)?
- 如果可能的话,我该如何使用Java来做到这一点?
多谢!
官方 Google+ API 仅提供对公共数据的只读访问权限。因此,您只能使用"公共"作为活动的集合。
通过授权,您只会获得这两个作用域。
- 知道你在谷歌上是谁https://www.googleapis.com/auth/plus.me
-查看您的电子邮件地址https://www.googleapis.com/auth/userinfo.email
如您所见,它不会开放对非公共活动的访问。
API 页面说,
可接受的"集合"值为:"public" - 指定用户创建的所有公共活动。
参考:Google+ API 页面。 无法在此处链接到它。