Verwenden Sie Flickr? 1 TB ist ebenfalls kostenlos, daher möchten Sie alle Bilder und Videos hier hochladen! Es gibt auch eine API, so dass es gut aus dem Programm verwendet werden kann ... Als ich es versuchte und suchte, gab es einige Möglichkeiten, öffentliche Bilder zu erhalten, aber überraschenderweise gibt es nicht viele Möglichkeiten, private Bilder zu erhalten ... Also werde ich es anstelle eines Memorandums (* ・ ω ・) ノ veröffentlichen
Ohne das geht es nicht (> _ <) Bitte erhalten Sie von den folgenden. https://www.flickr.com/services/apps/create/apply/
Wenn Sie ein privates Image erhalten möchten, benötigen Sie OAuth Token und OAuth Token Secret. Es wird zum Hochladen notwendig sein, damit es nicht schadet, es zu bekommen (・ ∀ ・) Bitte beziehen Sie sich auf das folgende Verfahren, um es zu erhalten. Getting a Request Token
mit diesem
Sind bereit! Jetzt ist es Zeit, den Code auszuführen.
Dieses Mal werde ich die Bibliothek benutzen. Fügen Sie im Falle eines Gradle Folgendes hinzu.
build.gradle
.....
dependencies {
compile('com.flickr4java:flickr4java:2.17')
}
.....
Durch Generieren einer Auth-Klasse wie unten gezeigt und Festlegen in RequestContext können Sie auch auf private Dateien zugreifen. Bitte lesen Sie den für Sie geeigneten Teil $ {Api Key}.
Main.java
import com.flickr4java.flickr.Flickr;
import com.flickr4java.flickr.FlickrException;
import com.flickr4java.flickr.REST;
import com.flickr4java.flickr.RequestContext;
import com.flickr4java.flickr.auth.Auth;
public class Main {
public static void main(String... args) throws FlickrException {
final Flickr flickr = new Flickr(
"${Api Key}",
"${Shared Secret}",
new REST()
);
Auth auth = new Auth();
auth.setToken("${OAuth Token}");
auth.setTokenSecret("${OAuth Token Secret}");
RequestContext requestContext = RequestContext.getRequestContext();
requestContext.setAuth(auth);
PhotosetsInterface photosetsInterface = flickr.getPhotosetsInterface();
}
}
Sie können die öffentliche URL erhalten, indem Sie sie wie folgt formatieren. https://www.flickr.com/services/api/misc.urls.html
Auf diese Weise können Sie alle kleinen (320 Pixel) Bilder von API-Benutzern abrufen, unabhängig davon, ob sie öffentlich oder privat sind.
Main.java
import com.flickr4java.flickr.Flickr;
import com.flickr4java.flickr.FlickrException;
import com.flickr4java.flickr.REST;
import com.flickr4java.flickr.RequestContext;
import com.flickr4java.flickr.auth.Auth;
import com.flickr4java.flickr.photosets.Photoset;
import com.flickr4java.flickr.photosets.Photosets;
import com.flickr4java.flickr.photosets.PhotosetsInterface;
public class Main {
private static final String IMAGE_URL = "https://farm%s.staticflickr.com/%s/%s_%s_%s.jpg ";
public static void main(String... args) throws FlickrException {
final Flickr flickr = new Flickr(
"${Api Key}",
"${Shared Secret}",
new REST()
);
Auth auth = new Auth();
auth.setToken("${OAuth Token}");
auth.setTokenSecret("${OAuth Token Secret}");
RequestContext requestContext = RequestContext.getRequestContext();
requestContext.setAuth(auth);
PhotosetsInterface photosetsInterface = flickr.getPhotosetsInterface();
Photosets photosets = photosetsInterface.getList(null);
photosets.getPhotosets().stream().map(Photoset::getId).flatMap(id -> {
try {
return photosetsInterface.getPhotos(id, 0, 0).stream();
} catch (FlickrException e) {
throw new RuntimeException();
}
}).forEach(photo -> System.out.println(
String.format(IMAGE_URL, photo.getFarm(), photo.getServer(), photo.getId(), photo.getSecret(), "n")
)
);
}
}
Ich konnte die öffentliche URL einer privaten Datei mit einem relativ einfachen Code erhalten! Wenn es sich um eine persönliche App handelt, können Sie diese Art der Verarbeitung verwenden ♪
Recommended Posts