gpt4 book ai didi

android - 使用 Google API Java 客户端解析公开共享的日历 RSS 提要

转载 作者:行者123 更新时间:2023-11-30 04:24:04 24 4
gpt4 key购买 nike

我正在尝试构建一个 Android 应用程序,它在来自公共(public)日历 RSS 提要的列表中显示 Google 日历条目。日历提要是公开的,但不与任何特定用户共享。

我已经在 iOS 端通过使用 Google 的 gdata 库(结合公共(public)日历 RSS)来解析和显示公共(public)日历提要来做到这一点。

不幸的是,gdata 与 Android 不兼容。 Google 拥有新的 google-api-java-client 库,但所有示例代码都与设备上的 google 帐户一起使用,然后通过 OAuth 进行身份验证。

有没有什么方法可以使用这些新库获取和解析公共(public)提要,而无需在设备上存储身份验证信息?甚至根本不进行身份验证?

最佳答案

我找到了解决方案。 Google Api Java 客户端示例中当前的 YouTube 示例就是一个很好的示例。

http://code.google.com/p/google-api-java-client/wiki/SampleProgram

难题的缺失部分是必须:

  1. 扩展 GoogleUrl 类(我使用了 CalendarUrl)
  2. 创建与 jsonc 输出相匹配的对象提要(您可以通过将 &alt=jsonc 附加到提要 URL 的末尾)
  3. 注释 (@Key("NameOfField")) 步骤 2 中的对象以匹配 jsonc 名称

完成后,以下代码将构建并获取您需要的一切:

HttpTransport transport = new NetHttpTransport();
final JsonFactory jsonFactory = new JacksonFactory();
HttpRequestFactory factory = transport.createRequestFactory(new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) {
// set the parser
JsonCParser parser = new JsonCParser(jsonFactory);
request.addParser(parser);
// set up the Google headers
GoogleHeaders headers = new GoogleHeaders();
headers.setApplicationName("Google-CalendarSample/1.0");
headers.gdataVersion = "2";
request.setHeaders(headers);
}
});

CalendarUrl url = new CalendarUrl(YOUR_FEED_URL);

HttpRequest request = factory.buildGetRequest(url);
CalendarFeed feed = request.execute().parseAs(CalendarFeed.class);

关于android - 使用 Google API Java 客户端解析公开共享的日历 RSS 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8808477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com