Android Google Takvim API kimlik bilgilerini al [yinelenen]
Dec 21 2020
Diğer şeylerin yanı sıra Google Takvim API'sına erişecek bir uygulama geliştirmek istiyorum.
Uygulamanın kullanıcıları da olaylara erişebilmelidir. Ama maalesef kodumla erişemiyorum. Ayrıca Google Calendar API Java Quickstart'taki talimatları takip ettim .
Bu benim kodum:
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);
}
}
}
}
Ve bu benim hata mesajım: java.security.KeyStoreException: JKS not found
Get all data yöntemini başka bir sınıfta şu şekilde çağırdım:
try {
GoogleCalendar.getAllData();
} catch (GeneralSecurityException | IOException e) {
e.printStackTrace();
}
Eksik bilgi ile ilgili herhangi bir sorunuz varsa, lütfen bize bildirin, bilgileri size ileteceğim.
Şimdiden teşekkür ederim.
Yanıtlar
JayRathodRJ Dec 21 2020 at 18:00
Bu bilinen bir sorun, sanırım google sorun izleyicide bir cevap bulabilirsin .
Sadece Bunu Değiştirin
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Bununla
HTTP_TRANSPORT = new com.google.api.client.http.javanet.NetHttpTransport()
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı