Java Android谷歌日历API获取凭据
我想开发一个应用程序,将访问谷歌日历API,以及其他东西 应用程序的用户也应该能够访问事件。 但不幸的是,我的代码无法访问。我也听从了老师的指示 这是我的代码:Java Android谷歌日历API获取凭据,java,android,google-api,google-calendar-api,Java,Android,Google Api,Google Calendar Api,我想开发一个应用程序,将访问谷歌日历API,以及其他东西 应用程序的用户也应该能够访问事件。 但不幸的是,我的代码无法访问。我也听从了老师的指示 这是我的代码: public class GoogleCalendar { private static final String APPLICATION_NAME = "Google Calendar Quickstart"; private static final JsonFactory JSON_FACTO
public class GoogleCalendar {
private static final String APPLICATION_NAME = "Google Calendar Quickstart";
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
private static final String TOKENS_DIRECTORY_PATH = "tokens";
/**
* Global instance of the scopes required by this quickstart.
* If modifying these scopes, delete your previously saved saved tokens/ folder.
*/
private static final List<String> SCOPES = Collections.singletonList(CalendarScopes.CALENDAR_READONLY);
private static final String CREDENTIALS_FILE_PATH = "/credential.json";
/**
* Creates an authorized Credential objects.
* @param HTTP_TRANSPORT The network HTTP Transport
* @return An authorized Credential object.
* @throws IOException If the client_id.jason file cannot be found.
*/
private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException {
// Load client secrets.
InputStream in = GoogleCalendar.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
if (in == null) {
throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
}
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
.setAccessType("offline")
.build();
LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
}
public static void getAllData() throws GeneralSecurityException, IOException {
// Build a new authorized API client service.
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Calendar service = new Calendar.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
.setApplicationName(APPLICATION_NAME)
.build();
// List the next 10 event from the primary calendar.
DateTime now = new DateTime(System.currentTimeMillis());
Events events = service.events().list("primary")
.setMaxResults(10)
.setTimeMin(now)
.setOrderBy("startTime")
.setSingleEvents(true)
.execute();
List<Event> items = events.getItems();
if (items.isEmpty()) {
System.out.println("No upcoming events found.");
} else {
System.out.println("Upcoming events");
for (Event event : items) {
DateTime start = event.getStart().getDateTime();
if (start == null) {
start = event.getStart().getDate();
}
System.out.printf("%s (%s)\n", events.getSummary(), start);
}
}
}
}
如果您有任何信息缺失的问题,请让我知道,我将传递信息
提前谢谢。这是一个众所周知的问题,我想你可以在上面找到答案 只需更换此
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
HTTP_TRANSPORT = new com.google.api.client.http.javanet.NetHttpTransport()
用这个
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
HTTP_TRANSPORT = new com.google.api.client.http.javanet.NetHttpTransport()
请不要复制现有答案并重复使用它们,只需复制问题即可。@DaImTo我在这个主题的阴影部分时遇到了相同的问题。在那一刻,我发现了这个链接,我仍然把它作为书签。我没有寻找其他相同的答案,如果在这里给出,以便复制和粘贴在这里。每个看起来相同的答案都不会被复制粘贴。