Instagram API with Processing

edited July 2015 in Library Questions

Hello, I am working on a project using Instagram API and found the code below from http://forum.processing.org/two/discussion/9601/instagram-api-integration-with-http-library posted by jayjaylu. I have a problem getting response from responseReceived() function below. getGram() is working, but responseReceived() isn't.. Anyone knows why? Please let me know. Thank you in advance.

 
    import com.francisli.processing.http.*;
     
    PImage userphoto;
    PImage profilepicture;
     
    String username;
    String tag;
    String[] tagStrings;
     
    String comment;
     
    com.francisli.processing.http.HttpClient client;
     
    void setup() {
      size(900, 800);
      smooth();
     
      client = new com.francisli.processing.http.HttpClient(this, "api.instagram.com");
      client.useSSL = true;
    }
     
    void getGrams() {
        //// instantiate a new HashMap
      HashMap params = new HashMap();
      //// put key/value pairs that you want to send in the request
      params.put("access_token", "1722917717.cbb3637.c9d399ea75b24dad9afe5f8b52e186db");
      params.put("count", "1");
      client.GET("/v1/tags/cats/media/recent.json", params);
    }
     
    void responseReceived(com.francisli.processing.http.HttpRequest request, com.francisli.processing.http.HttpResponse response) {
      println(response.getContentAsString());
      println("RESPONSE RECEIVED");
     
      //// we get the server response as a JSON object
      com.francisli.processing.http.JSONObject content = response.getContentAsJSONObject();
     
      //// get the "data" value, which is an array
      com.francisli.processing.http.JSONObject data = content.get("data");
     
      //// get the first element in the array
      com.francisli.processing.http.JSONObject first = data.get(0);
     
      //// the "user" value is another dictionary, from which we can get the "full_name" string value
      println(first.get("user").get("full_name").stringValue());
     
      //// the "caption" value is another dictionary, from which we can get the "text" string value
      //println(first.get("caption").get("text").stringValue());
     
      //// get profile picture
      println(first.get("user").get("profile_picture").stringValue());
     
      //// the "images" value is another dictionary, from which we can get different image URL data
      println(first.get("images").get("standard_resolution").get("url").stringValue());
     
      com.francisli.processing.http.JSONObject tags = first.get("tags");
      tagStrings = new String[tags.size()];
      for (int i = 0; i < tags.size(); i++) {
        tagStrings[i] = tags.get(i).stringValue();
      }
     
      comment = first.get("caption").get("text").stringValue();
      username = first.get("user").get("full_name").stringValue();
     
      String profilepicture_url = first.get("user").get("profile_picture").stringValue();
      profilepicture = loadImage(profilepicture_url, "png");
     
      String userphoto_url = first.get("images").get("standard_resolution").get("url").stringValue();
      userphoto = loadImage(userphoto_url, "png");
     
    }
     
     
    void draw() {
      background(255);
      imageMode(CENTER);
     
     
      if(frameCount % 100 == 0){
        println(frameCount);
        getGrams();
      }
     
      if (profilepicture != null) {
        image(profilepicture, 60, 70, 90, 90);
      }
      imageMode(CENTER);
      if (userphoto != null) {
        image(userphoto, width/2, height/2.25, 550, 550);
      }
     
      textSize(20);
      if (username != null) {
        text(username, 110, 115);
        fill(0);
      } else if (username == null) {
        text("null username", 110, 115);
        fill(0);
      }
     
      textSize(20);
      if (comment != null) {
        text(comment, 15, 700, 550, 100);
        fill(0);
      }
     
     
    }

Answers

Sign In or Register to comment.