Google MyBusiness Connect a Java program using http
Bonjour à tous,
les dependencies fonctionnent,
tout ce qui est en java uniquement ne posent pas de probleme.
Voir plus bas dans le programme.
Pour être précis, pour obtenir un certain type d'info,
on doit utiliser le http,
mais j'ai une erreur 401.
acces non autorisé.
Alors que j'ai le Json avec toutes les autorisations dedans sur le compte de travail.
Je dois déclarer mon l'adress http de mon app,
sauf que je n'ai que le build de intellij.
Je ne sais pas trop quoi faire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
| package com.company;
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.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
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.mybusiness.v4.MyBusiness;
import com.google.api.services.mybusiness.v4.model.ListAccountsResponse;
import com.google.api.services.mybusiness.v4.model.ListLocationsResponse;
import com.google.api.services.mybusiness.v4.model.Location;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collections;
import java.util.List;
public class Main {
/*
* Copyright 2019 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
private static final String APPLICATION_NAME =
"Google My Business API Java Quickstart";
private static final java.io.File DATA_STORE_DIR =
new java.io.File(System.getProperty("user.home"),
".store/mybusiness_sample");
private static FileDataStoreFactory dataStoreFactory;
private static HttpTransport httpTransport;
private static final JsonFactory JSON_FACTORY =
JacksonFactory.getDefaultInstance();
private static MyBusiness mybusiness;
/**
* Demonstrates the authentication flow to use
* with the Google My Business API Java client library.
*
* @return AuthorizationCodeInstalledApp
*/
private static Credential authorize() throws Exception {
// Creates an InputStream to hold the client ID and secret.
// InputStream secrets = Main.class.getResourceAsStream("C:/Users/user/Documents/Programming/Java/MyBusiness2/client_secrets.json");
InputStreamReader secrets = new InputStreamReader(new FileInputStream("C:/Users/user/Documents/Programming/Java/MyBusiness2/client_secrets.json"));
// Prompts the user if no credential is found.
if (secrets == null) {
System.out.println(
"Enter Client ID and Secret from Google API Console "
+ "into C:/Users/user/Documents/Programming/Java/MyBusiness2/src/main/resources/client_secrets.json");
System.exit(1);
}
// Uses the InputStream to create an instance of GoogleClientSecrets.
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, secrets);//new InputStreamReader(secrets));
if (clientSecrets.getDetails().getClientId().startsWith("Enter")
|| clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
System.out.println(
"Enter Client ID and Secret from Google API Console "
+ "into google-my-business-api-sample/src/main/resources/client_secrets.json");
System.exit(1);
}
// Sets up the authorization code flow.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets,
Collections.singleton("https://www.googleapis.com/auth/business.manage"))
.setDataStoreFactory(dataStoreFactory).build();
// Returns the credential.
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}
public static void main(String[] args) throws Exception {
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR);
// Calls the authorize() function to get a credential.
Credential credential = authorize();
// Calls MyBusiness.Builder to create a new instance named 'mybusiness'.
mybusiness = new MyBusiness.Builder(httpTransport, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME).build();
//////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//Lis ca https://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/
java.net.URL url1 = new URL("https://mybusiness.googleapis.com/v4/accounts/103922456502490788566/locations?orderBy=locationName");
URLConnection myURLConnection = url1.openConnection();
System.out.print(url1.openStream());
// java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://mybusiness.googleapis.com/v4/accounts/accounts/103922456502490788566").openStream());
/*
//////////////////////////////////////////////////////////////////////////
// l'ensemble des comptes
MyBusiness.Accounts.List accountsList = mybusiness.accounts().list();
ListAccountsResponse response = accountsList.execute();
List accounts = response.getAccounts();
for (Object account : accounts) {
System.out.println(account.toString());
}
/////////////////////////////////////////////////////////////////////////
// lister les locations
String name= "accounts/xxxxxxxxxxxxxxxxxxxxx";
MyBusiness.Accounts.Locations.List locationsList =
mybusiness.accounts().locations().list(name);
ListLocationsResponse response2 = locationsList.execute();
List<Location> locations = response2.getLocations();
if (locations != null) {
for (Location location : locations) {
System.out.println(location.toString());
}
} else {
System.out.printf("Account '%s' has no locations.", name);
}
*/
}
} |
Le Message d'erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| "C:\Program Files\Java\jdk-13.0.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.4\lib\idea_rt.jar=50288:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\user\Documents\Programming\Java\MyBusiness2\out\production\MyBusiness2;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-services-mybusiness-v4p5-java-rev20190909-1\mybusiness\google-api-services-mybusiness-v4-rev0-1.25.0.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\animal-sniffer-annotations-1.14.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\checker-compat-qual-2.5.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\commons-logging-1.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\error_prone_annotations-2.1.3.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-android-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-appengine-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-gson-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-jackson2-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-java6-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-protobuf-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-servlet-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-api-client-xml-1.30.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-android-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-appengine-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-gson-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-jackson2-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-protobuf-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-http-client-xml-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-oauth-client-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-oauth-client-appengine-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-oauth-client-java6-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\google-oauth-client-servlet-1.30.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\grpc-context-1.19.0.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\gson-2.8.5.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\guava-26.0-android.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\httpclient-4.5.9.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\httpcore-4.4.11.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\j2objc-annotations-1.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\jackson-core-2.9.9.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\jdo2-api-2.3-eb.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\jsr305-3.0.2.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\opencensus-api-0.21.0.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\opencensus-contrib-http-util-0.21.0.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\protobuf-java-2.6.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\transaction-api-1.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client\libs\xpp3-1.1.4c.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client-jetty\google-oauth-client-jetty-1.23.0.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client-jetty\javax.servlet-api-3.0.1.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client-jetty\jetty-6.1.5.jar;C:\Users\user\Documents\Programming\Java\MyBusiness2\libs\google-api-java-client-jetty\jetty-util-6.1.25.jar com.company.Main
1月 04, 2020 1:50:45 午後 com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
警告: unable to change permissions for everybody: C:\Users\user\.store\mybusiness_sample
1月 04, 2020 1:50:45 午後 com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
警告: unable to change permissions for owner: C:\Users\user\.store\mybusiness_sample
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 401 for URL: https://mybusiness.googleapis.com/v4/accounts/103922456502490788566/locations?orderBy=locationName
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1919)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
at java.base/java.net.URL.openStream(URL.java:1162)
at com.company.Main.main(Main.java:114)
Process finished with exit code 1 |
je dois déclarer l'adress de mon script genre http//8080...
Mais je ne trouve pas de tuto exacte.