/** * 認証Tokenが有効かどうかをチェックする * * @throws IOException */ public boolean checkToken() throws IOException { // alreay has Token? SharedPreferences preference = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); this.token = preference.getString("token", null); if (this.token == null) { return false; } // check Token validated. // http://flickr.com/services/rest/?method=flickr.auth.checkToken&auth_token=sdkjlsa983&api_key=987654321&frob=1a2b3c4d5e&api_sig=7f3870be274f6c49b3e31a0c6728957f. TreeMap<String, Object> map = new TreeMap<String, Object>(); map.put(paramApiKey, apiKey); map.put(paramMethod, AUTH_CHECK_TOKEN); map.put(paramResponseFormat, jsonFormat); // map.put(paramFlob, frob); map.put(paramAuthToken, this.token); map.put(paramApiSig, makeToken(map)); RestRequestData request = new RestRequestData(); request.setUrl(baseUrl); request.setPath(servicePath + "/" + restPath + "/"); request.setQueryParam(map); URL url = RestfulLib.makeUrl(request); String response = RestfulLib.httpGetRequest(url.toString()); return parseCheckToken(response); }
/** * ファイルをアップロードする * * @param uri * @param listner */ public String upload(String uri, final UploadProgressListner listner) { String response = null; TreeMap<String, Object> map = new TreeMap<String, Object>(); map.put(paramApiKey, apiKey); map.put(paramResponseFormat, jsonFormat); map.put(paramAuthToken, this.token); map.put(paramTitle, ""); map.put(paramIsPublic, "0"); map.put(paramApiSig, makeToken(map)); InputStream is = null; try { // ParcelFileDescriptor pfd = // context.getContentResolver().openFileDescriptor(uriList.get(0), "r"); // long size = pfd.getStatSize(); // try { // pfd.close(); // } catch (IOException e) { // e.printStackTrace(); // } // is = context.getContentResolver().openInputStream(uriList.get(0)); String path = null; path = uri; map.put(paramPhoto, path); RestRequestData request = new RestRequestData(); request.setUrl(baseUrl); request.setPath(servicePath + "/" + uploadPath + "/"); request.setQueryParam(map); response = RestfulLib.httpPostRequestMultipart( request, new ProgressListener() { @Override public void transferred(long num, long contentLength) { Log.d(LOG_TAG, num + " byte written."); listner.onProgress(num, contentLength); } }); } catch (Exception e) { } return ""; // return parseUpload(response); }
/** redirect to flickr auth web pages. */ public Uri redirectAuthPage() { // http://flickr.com/services/auth/?api_key=987654321&perms=write&frob=1a2b3c4d5e&api_sig=6f3870be274f6c49b3e31a0c6728957f TreeMap<String, Object> map = new TreeMap<String, Object>(); map.put(paramApiKey, apiKey); map.put(paramPerm, "write"); map.put(paramFlob, frob); map.put(paramApiSig, makeToken(map)); RestRequestData request = new RestRequestData(); request.setUrl(baseUrl); request.setPath(servicePath + "/" + authPath + "/"); request.setQueryParam(map); URL url = RestfulLib.makeUrl(request); return Uri.parse(url.toString()); }
/** * get flickr flobs * * @throws IOException */ public void getFlob() throws IOException { // (example) // http://flickr.com/services/rest/?method=flickr.auth.getFrob&api_key=987654321&api_sig=5f3870be274f6c49b3e31a0c6728957f TreeMap<String, Object> map = new TreeMap<String, Object>(); map.put(paramMethod, AUTH_GET_FLOB); map.put(paramApiKey, apiKey); map.put(paramResponseFormat, jsonFormat); map.put(paramApiSig, makeToken(map)); RestRequestData request = new RestRequestData(); request.setUrl(baseUrl); request.setPath(servicePath + "/" + restPath + "/"); request.setQueryParam(map); URL url = RestfulLib.makeUrl(request); String response = RestfulLib.httpGetRequest(url.toString()); parseFrob(response); }
/** * 認証用トークン取得要求 Webでの認証後に呼び出される * * @throws IOException */ public boolean getToken() throws IOException { // http://flickr.com/services/rest/?method=flickr.auth.getToken&api_key=987654321&frob=1a2b3c4d5e&api_sig=7f3870be274f6c49b3e31a0c6728957f. TreeMap<String, Object> map = new TreeMap<String, Object>(); map.put(paramApiKey, apiKey); map.put(paramMethod, AUTH_GET_TOKEN); map.put(paramResponseFormat, jsonFormat); map.put(paramFlob, frob); map.put(paramApiSig, makeToken(map)); RestRequestData request = new RestRequestData(); request.setUrl(baseUrl); request.setPath(servicePath + "/" + restPath + "/"); request.setQueryParam(map); URL url = RestfulLib.makeUrl(request); String response = RestfulLib.httpGetRequest(url.toString()); return parseToken(response); }