@Override @Transactional(readOnly = true) public FetcherRequestDTO prepareFetcherRequest(Collection dbCollection) { FetcherRequestDTO dto = new FetcherRequestDTO(); UserConnection userconnection = userConnectionService.fetchByCombinedUserName(dbCollection.getOwner().getUserName()); dto.setAccessToken(userconnection.getAccessToken()); dto.setAccessTokenSecret(userconnection.getSecret()); dto.setCollectionName(dbCollection.getName()); dto.setCollectionCode(dbCollection.getCode()); if (dbCollection.getProvider() == CollectionType.Facebook) { dto.setToFollow(dbCollection.getFollow()); } else { dto.setToFollow( getFollowTwitterIDs(dbCollection.getFollow(), dbCollection.getOwner().getUserName())); } dto.setToTrack(dbCollection.getTrack()); dto.setGeoLocation(dbCollection.getGeo()); dto.setGeoR(dbCollection.getGeoR()); dto.setLanguageFilter(dbCollection.getLangFilters()); dto.setSaveMediaEnabled(dbCollection.isSaveMediaEnabled()); dto.setFetchInterval(dbCollection.getFetchInterval()); dto.setProvider(dbCollection.getProvider().toString()); dto.setFetchInterval(dbCollection.getFetchInterval()); dto.setFetchFrom(dbCollection.getFetchFrom()); dto.setLastExecutionTime(dbCollection.getLastExecutionTime()); // Added by koushik accessTokenStr = dto.getAccessToken(); accessTokenSecretStr = dto.getAccessTokenSecret(); return dto; }
@Override @Transactional(readOnly = true) public String getFollowTwitterScreenNames(String followList, String userName) { if (followList != null && !followList.isEmpty()) { List<String> userList = Arrays.asList(followList.split(",")); if (null == accessTokenStr || null == accessTokenSecretStr) { UserConnection userConnection = userConnectionService.fetchByCombinedUserName(userName); accessTokenStr = userConnection.getAccessToken(); accessTokenSecretStr = userConnection.getSecret(); } long[] userIdList = null; if (userList != null) { try { userIdList = new long[userList.size()]; int j = 0; logger.info("Received string: " + followList + ", Split follow string: " + userList); for (String user : userList) { // logger.info("Looking at follow data: " + user); if (StringUtils.isNumeric(user.trim())) { try { userIdList[j] = Long.parseLong(user.trim()); // logger.info("Going to fetch twitter userData for the following twitterID: " + // userIdList[j]); ++j; } catch (Exception ex) { logger.error("Exception in parsing string to number: ", ex); } } } userIdList = ArrayUtils.subarray(userIdList, 0, j); } catch (Exception e) { e.printStackTrace(); } } List<User> dataList = new ArrayList<User>(); if (userIdList != null && userIdList.length > 0) { dataList.addAll(getUserDataFromTwitterID(userIdList, userName)); } if (!dataList.isEmpty()) { StringBuffer followScreenNames = new StringBuffer(); for (User user : dataList) { followScreenNames.append(user.getScreenName()).append(","); } followScreenNames.deleteCharAt(followScreenNames.lastIndexOf(",")); // logger.info("Created follow twitterID list: " + followScreenNames.toString()); return followScreenNames.toString(); } else { return null; } } return null; }
@Override public JSONArray searchFacebookProfiles( String keyword, Integer offset, Integer limit, UserAccount userEntity) { UserConnection userConnection = userConnectionService.fetchByCombinedUserName(userEntity.getUserName()); userConnection.getAccessToken(); try { Client client = ClientBuilder.newBuilder().register(JacksonFeature.class).build(); WebTarget webResource = client.target( fetchMainUrl + "/" + SocialSignInProvider.FACEBOOK + "/searchProfiles" + "?offset=" + offset + "&limit=" + limit + "&keyword=" + URLEncoder.encode(keyword, "UTF-8")); ObjectMapper objectMapper = JacksonWrapper.getObjectMapper(); Response clientResponse = webResource .request(MediaType.APPLICATION_JSON) .post(Entity.json(userConnection.getAccessToken()), Response.class); String jsonString = clientResponse.readEntity(String.class); JSONParser parser = new JSONParser(); JSONObject jsonResponse = (JSONObject) parser.parse(jsonString); JSONArray response = objectMapper.readValue(jsonResponse.get("entity").toString(), JSONArray.class); return response; } catch (Exception e) { logger.error("Exception while searching facebok profiles", e); } return null; }