Through the new Google My Business API, developers can:
- Create business locations with information such as name, address, phone number, category, business hours, and more
- Manage special hours
- Mark a business location as permanently closed
- Manage business photos
- List, invite and remove managers on locations and business accounts
- Read listing state to identify Google updated, duplicate and suspended locations
- Search/Filter locations by name, category and label
- Set the service area for a business either by specifying a point and radius or Place IDs
Here's a sample java function that creates a new location and sets special holiday hours:
public static Location createLocation(String accountName) throws Exception { Location location = new Location(); // Street address Address address = new Address(); List addressLines = Arrays.asList("740 Valencia Street"); address.setAddressLines(addressLines); address.setLocality("San Francisco"); address.setAdministrativeArea("CA"); address.setCountry("US"); address.setPostalCode("94110"); location.setAddress(address); // Business hours BusinessHours businessHours = new BusinessHours(); List periods = new ArrayList<>(); List days = Arrays.asList("Monday", "Tuesday", "Wednesday", "Thursday", "Friday"); for (String day : days) { TimePeriod period = new TimePeriod(); period.setOpenDay(day); period.setOpenTime("11:00"); period.setCloseTime("20:00"); period.setCloseDay(day); periods.add(period); } businessHours.setPeriods(periods); location.setBusinessHours(businessHours); // Special hours Date christmasEve = new Date().setYear(2015).setMonth(12).setDay(24); Date christmasDay = new Date().setYear(2015).setMonth(12).setDay(25); ListWhen special hours are set in Google My Business, we will tell customers that they’re seeing holiday-specific opening hours on Google:periods = new ArrayList<>(); periods.add(new SpecialHourPeriod() .setStartDate(christmasEve) .setOpenTime("11:00") .setCloseTime("20:00") .setEndDate(christmasEve)); periods.add(new SpecialHourPeriod() .setStartDate(christmasDay) .setIsClosed(true)); SpecialHours specialHours = new SpecialHours() .setSpecialHourPeriods(periods); location.setSpecialHours(specialHours); location.setLocationName("Dandelion Chocolate"); location.setStoreCode("DC1"); location.setPrimaryPhone("415 349-0942"); location.setPrimaryCategory(new Category().setCategoryId("gcid:chocolate_shop")); location.setWebsiteUrl("https://www.dandelionchocolate.com/"); // Create Location CreateLocationRequest createLocationRequest = new CreateLocationRequest(); // RequestId is a unique id for each location created createLocationRequest.setRequestId(“1a84939c-ab7d-4581-8930-ee35af6fefac”); createLocationRequest.setLocation(location); createLocationRequest.setLanguageCode("en-US"); Mybusiness.Accounts.Locations.Create createLocation = mybusiness.accounts().locations().create(accountName, createLocationRequest); Location createdLocation = createLocation.execute(); System.out.printf("Created Location:n%s", createdLocation.toPrettyString()); return createdLocation; }
To learn more about the Google My Business API and to apply for access, visit our developer page.
Questions or feedback? Contact the API team on the Google My Business API Forum.
Posted by Aditya Tendulkar, Product Manager, Google My Business