package com.vodafone.oauth; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import org.scribe.builder.ServiceBuilder; import org.scribe.builder.api.Api20; import org.scribe.utils.Preconditions; import org.scribe.utils.URLUtils; public class VodafoneAPI implements Api20 { private final String HOST = "http://api.developer.vodafone.com"; @Override public String getAuthorizationUrl(ServiceBuilder service) { final String AUTHORIZE_URL = HOST+"/2/oauth/authorize?" + "client_id=%s&" + "redirect_uri=%s&" + "response_type=%s&" + "scope=%s"; Preconditions.checkValidUrl(service.getCallback(), "Must provide a valid url as callback."); String authCodeURL = String.format(AUTHORIZE_URL, service.getApiKey(), URLUtils.urlEncodeWrapper(service.getCallback()), service.getResponseType(), service.getScope()); InputStream is = null; try { URL resourceUrl = new URL(authCodeURL); HttpURLConnection conn = (HttpURLConnection)resourceUrl.openConnection(); conn.setConnectTimeout(15000); conn.setReadTimeout(15000); conn.connect(); is = conn.getInputStream(); String res = conn.getURL().toString(); if (res != null) return res; } catch (Exception e) { System.out.println("error happened: "+e.toString()); } finally { if (is != null) try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } @Override public String getAccessTokenUrl(ServiceBuilder service, String authCodeToken) { final String AUTHORIZE_URL = HOST+"/2/oauth/access_token?client_id=%s"; return String.format(AUTHORIZE_URL, service.getApiKey()); } }