Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.google.api.client.auth.oauth2.Credential;
- import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
- import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
- import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
- import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
- import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
- import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
- import com.google.api.client.http.HttpTransport;
- import com.google.api.client.http.javanet.NetHttpTransport;
- import com.google.api.client.json.JsonFactory;
- import com.google.api.client.json.jackson2.JacksonFactory;
- import com.google.api.client.util.store.FileDataStoreFactory;
- import com.google.api.services.sheets.v4.Sheets;
- import com.google.api.services.sheets.v4.SheetsScopes;
- import com.google.api.services.sheets.v4.model.ValueRange;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.security.GeneralSecurityException;
- import java.util.Collections;
- import java.util.List;
- public class SheetsQuickstart {
- private static final String APPLICATION_NAME = "Google Sheets API Java 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 tokens/ folder.
- */
- private static final List<String> SCOPES = Collections.singletonList(SheetsScopes.SPREADSHEETS_READONLY);
- private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
- /**
- * Creates an authorized Credential object.
- * @param HTTP_TRANSPORT The network HTTP Transport.
- * @return An authorized Credential object.
- * @throws IOException If the credentials.json file cannot be found.
- */
- private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException {
- // Load client secrets.
- InputStream in = SheetsQuickstart.class.getResourceAsStream(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 Sheets createSheetsService() throws IOException, GeneralSecurityException {
- HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
- JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
- // TODO: Change placeholder below to generate authentication credentials. See
- // https://developers.google.com/sheets/quickstart/java#step_3_set_up_the_sample
- //
- // Authorize using one of the following scopes:
- // "https://www.googleapis.com/auth/drive"
- // "https://www.googleapis.com/auth/drive.file"
- // "https://www.googleapis.com/auth/spreadsheets"
- GoogleCredential credential = null;
- return new Sheets.Builder(httpTransport, jsonFactory, credential)
- .setApplicationName("Google-SheetsSample/0.1")
- .build();
- }
- /**
- * Prints the names and majors of students in a sample spreadsheet:
- * https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
- */
- public static void main(String... args) throws IOException, GeneralSecurityException {
- // Build a new authorized API client service.
- final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
- final String spreadsheetId = "1Cz66gpzisC8O8J53LsJk_p0Rp8fQEK6I3Q1S2-6K4Ys";
- final String range = "A2:E";
- Sheets service = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
- .setApplicationName(APPLICATION_NAME)
- .build();
- ValueRange response = service.spreadsheets().values()
- .get(spreadsheetId, range)
- .execute();
- List<List<Object>> values = response.getValues();
- if (values == null || values.isEmpty()) {
- System.out.println("No data found.");
- } else {
- System.out.println("Name, Major");
- for (List row : values) {
- // Print columns A and E, which correspond to indices 0 and 4.
- System.out.printf("%s, %s\n", row.get(0), row.get(1));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement