oauth 2.0 - 403 Forbidden Error While accessing Google MapsAPI -
i trying establish connectivity google maps api using service account. have project in place in google maps api, , have relvant clientid, .p12 key, email address. using google libraries credentials , call api below.
code:
package mapsengine;import com.google.api.client.auth.oauth2.credential; import com.google.api.client.googleapis.auth.oauth2.googlecredential; 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.services.mapsengine.mapsengine; import com.google.api.services.mapsengine.model.map; import com.google.api.services.mapsengine.model.layer; import java.io.file;import java.io.ioexception; import java.util.collections; public class main { /** provide id of map wish read. */ private static final string map_id = "my map id gave"; private static final string application_name = "google-mapsengineapisample/1.0"; private static final httptransport http_transport = new nethttptransport(); private static final jsonfactory json_factory = new jacksonfactory(); private static final string service_account_email= "asajdsjdheemqe@developer.gserviceaccount.com";
private static credential authorize() throws exception { googlecredential credential = new googlecredential.builder().settransport(http_transport ) .setjsonfactory(json_factory)
.setserviceaccountid(service_account_email) .setserviceaccountscopes(collections.singleton("https://www.googleapis.com/auth/mapsengine"))
.setserviceaccountprivatekeyfromp12file(new file("key.p12")) .build();
credential.refreshtoken();
system.out.println(credential); return credential;
} public static void main(string[] args) { try { // authorize application access user's data. credential credential = authorize(); // create authorized maps engine client credential. mapsengine mapsengine = new mapsengine.builder(http_transport, json_factory, credential) . setapplicationname(application_name).build(); system.out.println(mapsengine); // make request details of particular map. // map map = mapsengine.maps().get(map_id).execute(); system.out.println(map.getname()); system.out.println(map.getdescription()); } catch (ioexception e) { system.out.println(e.getmessage()); } catch (throwable t) { t.printstacktrace(); } }
}`
i getting error 403 forbidden { "code" : 403, "errors" : [ { "domain" : "mapsengine", "location" : "id", "locationtype" : "parameter", "message" : "permission denied (reader access required).", "reason" : "noreaderaccess" } ], "message" : "permission denied (reader access required)." }
but able see service email account using has edit access, tried giving view access. else missign here. please help.
you need go map, , add service_account_email address , give can edit or view premission follow this: https://support.google.com/mapsengine/answer/4618526?hl=en
Comments
Post a Comment