Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab

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

API-Schlüssel abrufen

Ohne das geht es nicht (> _ <) Bitte erhalten Sie von den folgenden. https://www.flickr.com/services/apps/create/apply/

OAuth-Token und OAuth-Token-Geheimnis erhalten

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

Führen Sie den Code aus

mit diesem

Sind bereit! Jetzt ist es Zeit, den Code auszuführen.

Holen Sie sich Flickr4 Java

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')
}

.....

Generierung des Ausführungscodes

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();
    }
}

Öffentliche URL der privaten Datei

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")
                )
        );
    }
}

Verschiedene Gefühle

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

Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
Holen Sie sich das Ergebnis von POST in Java
So ermitteln Sie die Länge einer Audiodatei mit Java
Messen Sie die Größe eines Ordners mit Java
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Java] So erhalten Sie die URL der Übergangsquelle
Quelle zum Abrufen der Umleitungsquell-URL in Java
Rufen Sie die URL des HTTP-Umleitungsziels in Ruby ab
[Java] Ganzzahlige Informationen von Zeichen in der Textdatei, die mit der Methode read () erfasst wurden
Eine kurze Erklärung der fünf Arten von Java Static
Aktivieren Sie die Zelle A1 jeder Excel-Datei mit Java
Entpacken Sie die Zip-Datei in Java
Bleiben Sie in einem Java Primer stecken
Ich möchte die MD5-Prüfsumme einer Datei in Java finden und das Ergebnis als Zeichenfolge in hexadezimaler Notation erhalten.
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
Rufen Sie in Spring Boot eine Proxy-Instanz der Komponente selbst ab
[Java] Gibt eine japanische Namensdatei im Dateinamen im HTTP-Header zurück
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
So erhalten Sie das Datum mit Java
Die Geschichte des Schreibens von Java in Emacs
[Java8] Durchsuchen Sie das Verzeichnis und holen Sie sich die Datei
Erhöhen Sie dynamisch die Anzahl der Elemente in einem zweidimensionalen Java-Array (mehrdimensionales Array).
Anmerkung: [Java] Wenn sich eine Datei im überwachten Verzeichnis befindet, verarbeiten Sie sie.
So finden Sie heraus, welche Java-Version der Klassendatei kompiliert wurde
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
[Java] Holen Sie sich MimeType aus dem Inhalt der Datei mit Apathce Tika [Kotlin]
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
JAVA: jar, aar, zeige den Inhalt der Datei an
Die Geschichte eines gewöhnlichen Othello in Java
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
Über die Idee anonymer Klassen in Java
Eine Geschichte über das JDK in der Java 11-Ära
[Java] Zugriff auf die signierte URL von s3 (signierte Version 2)
Die Geschichte des Lernens von Java in der ersten Programmierung
[Java] Ermittelt die Länge der Ersatzpaarzeichenfolge
[JAVA] Nur den Dateinamen abrufen, ausgenommen die Erweiterung
Spüren Sie den Lauf der Zeit auch in Java
Eine Bat-Datei, die Java in Windows verwendet
[Java] Dateien in src / main / resources lesen
Ein kurzer Überblick über Java, das im Unterricht gelernt wurde
[Java] So erhalten Sie die endgültige umgeleitete URL
Importieren Sie Dateien derselben Hierarchie in Java
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
Überprüfen Sie das ID-Token eines von AWS Cognito in Java authentifizierten Benutzers
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
Rufen Sie eine Liste mit MBean-Informationen für Java-Anwendungen ab
Ein kurzer Überblick über Java, das in Klasse 4 gelernt wurde
[Java] Überprüfen Sie die JDK-Version der erstellten Kriegsdatei
Rufen Sie den Namen des Testfalls in der JUnit-Testklasse ab
[Java] So erhalten Sie den Maximalwert von HashMap
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
Ein Hinweis zum Initialisieren von Feldern im Java-Lernprogramm
Holen Sie sich eine Liste der Klassen in einem Guava-spezifischen Paket