public void setup() { size(320, 240); String[] devices = Capture.list(); println(devices); // Set up the camera. // cam = new Capture(this, 320, 240); cam = new Capture(this, width, height, devices[10]); // cam.start(); // Set up Flickr. flickr = new Flickr(apiKey, secretKey, (new Flickr(apiKey)).getTransport()); // Authentication is the hard part. // If you're authenticating for the first time, this will open up // a web browser with Flickr's authentication web page and ask you to // give the app permission. You'll have 15 seconds to do this before the Processing app // gives up waiting fr you. // After the initial authentication, your info will be saved locally in a text file, // so you shouldn't have to go through the authentication song and dance more than once authenticate(); // Create an uploader uploader = flickr.getUploader(); }
// FLICKR AUTHENTICATION HELPER FUNCTIONS // Attempts to authneticate with a given token public void authenticateWithToken(String _token) { AuthInterface authInterface = flickr.getAuthInterface(); // make sure the token is legit try { authInterface.checkToken(_token); } catch (Exception e) { println("Token is bad, getting a new one"); getAuthentication(); return; } auth = new Auth(); RequestContext requestContext = RequestContext.getRequestContext(); requestContext.setSharedSecret(secretKey); requestContext.setAuth(auth); auth.setToken(_token); auth.setPermission(Permission.WRITE); flickr.setAuth(auth); println("Authentication success"); }
// Goes online to get user authentication from Flickr. public void getAuthentication() { AuthInterface authInterface = flickr.getAuthInterface(); try { frob = authInterface.getFrob(); } catch (Exception e) { e.printStackTrace(); } try { URL authURL = authInterface.buildAuthenticationUrl(Permission.WRITE, frob); // open the authentication URL in a browser open(authURL.toExternalForm()); } catch (Exception e) { e.printStackTrace(); } println("You have 15 seconds to approve the app!"); int startedWaiting = millis(); int waitDuration = 15 * 1000; // wait 10 seconds while ((millis() - startedWaiting) < waitDuration) { // just wait } println("Done waiting"); try { auth = authInterface.getToken(frob); println("Authentication success"); // This token can be used until the user revokes it. token = auth.getToken(); // save it for future use saveToken(token); } catch (Exception e) { e.printStackTrace(); } // complete authentication authenticateWithToken(token); }