Xero integration

1. You need to create a private application 2. CONSUMER_KEY = "0GMQWVHXFLSF68MT69J94CHUHJ6W6"; CONSUMER_SECRET = "9MC5ZF6ETYOQNGB0ULVN4JF5JOH"; 3. Create your Self-signed certificate Using OpenSSL openssl genrsa -out xero_privatekey.pem 1024 openssl req -newkey rsa:1024 -x509 -key xero_privatekey.pem -out xero_publickey.cer -days 365 The .cer will be needed when creating the API application in the Xero Developer Centre ‘Add Application’ screen Extract the private key in PKCS8 format: openssl pkcs8 -topk8 -nocrypt -in xero_privatekey.pem -out xero_privatekey.pcks8 Code: OAuth1AccessToken accessToken; final String PROTECTED_RESOURCE_URL = "https://api.xero.com/api.xro/2.0/Accounts"; String API_KEY = "0GMQWVHXFLSF68MT69J94CHUHJ6W6"; String API_SECRET = "9MC5ZF6ETYOQNGB0ULVN4JF5JOH"; OAuth10aService service = new ServiceBuilder() .signatureType(SignatureType.Header) .apiKey(API_KEY) .apiSecret(API_SECRET) .build(xeroApi); accessToken = new OAuth1AccessToken(API_KEY, API_SECRET); logger.debug("Access Token"+accessToken.getToken()); OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL, service); request.addHeader("Accept", "application/json"); service.signRequest(accessToken, request); String responseString = ""; try { Response response = request.send(); responseString = response.getBody().toString(); return responseString; } catch (Exception e) { e.printStackTrace(); logger.debug("Xero " + e.getLocalizedMessage()); } logger.debug(responseString); --------- Google OAuth sample code Sample code <% // generated by xero String CONSUMER_KEY = "GENERATED BY XERO WHEN CREATING YOUR APP"; // You will find the CONSUMER_PRIVATE_KEY in the .pcks8 file generated previously // remove -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- String CONSUMER_PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQIwggJXAAOlOGibUTx65x07L\n"+ "vHCCJWzF5CAcG53V/yg6/MCvmozgBJQyngz8ytgD9Fv1BYa2oSneFh3q3k\n"+ "E5mlIX1m90ZeZkJJ0RLpLtRBfKWeQGipDw5KCZjqtQjs4MQ76X6zZRhv4\n"+ "R3fbWfoo5yVbt5Bet/E5mlIX1m90ZeZkJJ0RLpLtRBfKWeQGipDw5KCZjqtQjs4M\n"+ "jx7+eM5fRN9RAjzosUjcnidfnMZwDfbRInNMLlUwVn8NiMKDSi5urCPBfSIH04By\n"+ "nL2l0xsuR8C/ZRU5O9PkovSuY0rTIkvgk9IixStUXoAonklQDyZIQlECQQCO7bqq\n"+ "thb+ds9+0CpfQyrqk4Mea7dowCH4qLCgfPZNWyY3nR62gi76OYGVKfwFPvJnNKcQ\n"+ "ro+uGRpx0lF0+crM"; OAuthServiceProvider serviceProvider = new OAuthServiceProvider(null,null,null); OAuthConsumer consumer = new OAuthConsumer(null, CONSUMER_KEY, null, serviceProvider); consumer.setProperty(RSA_SHA1.PRIVATE_KEY, CONSUMER_PRIVATE_KEY); consumer.setProperty(OAuth.OAUTH_SIGNATURE_METHOD, OAuth.RSA_SHA1); OAuthAccessor accessor = new OAuthAccessor(consumer); OAuthClient client = new OAuthClient(new HttpClient4()); System.out.println("accessToken: "+accessor.accessToken); accessor.accessToken = CONSUMER_KEY; OAuthMessage response = client.invoke(accessor, "https://api.xero.com/api.xro/2.0/Organisation", Collections.>emptySet()); String responseAsString = response.readBodyAsString(); System.out.println("RESPONSE IS" + responseAsString); %>

Comments