如何使用java从闪烁中获取公共数据和图像?

时间:2015-04-27 04:33:22

标签: java flickr

我试图通过使用flickr提供的API密钥和密钥来获取Flickr数据。我为它编写了一个java代码。

`package com.flickr.project;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

import com.aetrion.flickr.Flickr;
import com.aetrion.flickr.FlickrException;
import com.aetrion.flickr.REST;
import com.aetrion.flickr.auth.Permission;
import com.aetrion.flickr.photos.SearchParameters;
import com.aetrion.flickr.photos.PhotoList;
import com.aetrion.flickr.photos.PhotosInterface;
import com.aetrion.flickr.photos.Photo;
import com.flickr4java.flickr.Auth;
import com.flickr4java.flickr.RequestContext;
public class SampleProgram{

    public static void main(String[] args) {
        try {
            searchImages();

        } catch (Exception e) {

            e.printStackTrace();
        }
    }



public static  void searchImages() {
   //  Search photos with tag keywords and get result
 try{
         //Set api key
        String key="";
        String svr="www.flickr.com";
        String secret="";

        RequestContext requestContext = RequestContext.getRequestContext();
        Auth auth = new Auth();
        auth.setPermission(Permission.READ);
        auth.setToken("");
        auth.setTokenSecret("");
        requestContext.setAuth(auth);
        REST rest=new REST();
        rest.setHost(svr);

        //initialize Flickr object with key and rest
        Flickr flickr=new Flickr(key,secret,rest);
        Flickr.debugRequest = false;
        Flickr.debugStream = false;
        Flickr.debugStream=false;

        //initialize SearchParameter object, this object stores the search keyword
        SearchParameters searchParams=new SearchParameters();
        searchParams.setSort(SearchParameters.INTERESTINGNESS_DESC);
        //Create tag keyword array
        String[] tags=new String[]{"Dog","Doberman"};
        searchParams.setTags(tags);

        //Initialize PhotosInterface object
        PhotosInterface photosInterface=flickr.getPhotosInterface();

        //Execute search with entered tags
       // PhotoList photoList=null;
        PhotoList photoList=photosInterface.search(searchParams,20,1);
        System.out.println("here");
        //get search result and fetch the photo object and get small square imag's url
        if(photoList!=null){
           //Get search result and check the size of photo result
           for(int i=0;i<photoList.size();i++){
              //get photo object
              Photo photo=(Photo)photoList.get(i);
              //Get small square url photo
              StringBuffer strBuf=new StringBuffer();
              strBuf.append("<a href=\"\">");
              strBuf.append("<img border=\"0\" src=\""+photo.getSmallSquareUrl()+"\">");
              strBuf.append("</a>\n");
            //  ....
           }
        }
}catch(Exception e){
    e.printStackTrace();
}
    }

public void  userAuthentication(){
    /*InputStream in = null;
    try {
        in = getClass().getResourceAsStream("/setup.properties");
      //  properties = new Properties();
      //  properties.load(in);
    } finally {
        IOUtilities.close(in);
    }
    f = new Flickr(properties.getProperty("apiKey"), properties.getProperty("secret"), new REST());
    requestContext = RequestContext.getRequestContext();
    Auth auth = new Auth();
    auth.setPermission(Permission.READ);
    auth.setToken(properties.getProperty("token"));
    auth.setTokenSecret(properties.getProperty("tokensecret"));
    requestContext.setAuth(auth);
    Flickr.debugRequest = false;
    Flickr.debugStream = false;*/
}
    }   `

我需要使用程序中提到的关键词从flickr中获取所有数据,包括图像。

1 个答案:

答案 0 :(得分:0)

从外观上看,Photo有以下几种方法:

“getSmallSquareAsInputStream” - 返回一个输入流,可用于获取图像数据。

Photo类的完整API列表可用here