Obtenez l'URL publique du fichier privé de Flickr en Java

Utilisez-vous Flickr? 1 To est également gratuit, vous voulez donc télécharger toutes les images et vidéos ici! Il existe également une API, donc elle peut être utilisée à partir du programme ... Lorsque j'ai essayé et recherché, il y a plusieurs façons d'obtenir des images publiques, mais étonnamment, il n'y a pas beaucoup de façons d'obtenir des images privées ... Alors, je le posterai au lieu d'un mémorandum (* ・ ω ・) ノ

Obtenir la clé API

Ça ne commencera pas sans ça (> _ <) Veuillez obtenir les informations suivantes. https://www.flickr.com/services/apps/create/apply/

Obtention d'un jeton OAuth et d'un secret de jeton OAuth

Si vous souhaitez obtenir une image privée, vous avez besoin du jeton OAuth et du secret du jeton OAuth. Il sera nécessaire pour le téléchargement, donc cela ne fera pas de mal de l'obtenir (・ ∀ ・) Veuillez vous référer à la procédure suivante pour l'obtenir. Getting a Request Token

Exécuter le code

avec ça

Sont prêts! Il est maintenant temps d'exécuter le code.

Obtenez Flickr4 Java

Cette fois, j'utiliserai la bibliothèque. En cas de gradle, ajoutez ce qui suit.

build.gradle


.....

dependencies {
	compile('com.flickr4java:flickr4java:2.17')
}

.....

Génération de code d'exécution

En générant une classe Auth comme indiqué ci-dessous et en la définissant dans RequestContext, vous pouvez également accéder aux fichiers privés. Veuillez lire la partie $ {Api Key} comme appropriée pour vous-même.

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

URL publique du fichier privé

Vous pouvez obtenir l'URL publique en la formatant en vous référant à ce qui suit. https://www.flickr.com/services/api/misc.urls.html

En faisant cela, vous pouvez obtenir toutes les images de petite taille (320px) des utilisateurs d'API, qu'elles soient publiques ou privées.

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

Sentiments divers

J'ai pu obtenir l'URL publique d'un fichier privé avec un code relativement simple! S'il s'agit d'une application personnelle, je pense que vous pouvez utiliser ce type de traitement ♪

Recommended Posts

Obtenez l'URL publique du fichier privé de Flickr en Java
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
Obtenez le résultat de POST en Java
Comment obtenir la longueur d'un fichier audio avec Java
Mesurer la taille d'un dossier avec Java
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
[Java] Comment obtenir l'URL de la source de transition
Source utilisée pour obtenir l'URL de la source de redirection en Java
Obtenez l'URL de la destination de la redirection HTTP dans Ruby
[Java] Informations entières des caractères du fichier texte acquises par la méthode read ()
Une explication rapide des cinq types de statique Java
Activez la cellule A1 de chaque feuille de fichier Excel avec Java
Décompressez le fichier zip en Java
Restez coincé dans un Java Primer
Je veux trouver la somme de contrôle MD5 d'un fichier en Java et obtenir le résultat sous forme de chaîne de caractères en notation hexadécimale.
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Obtenez une instance proxy du composant lui-même dans Spring Boot
[Java] Renvoie un fichier de nom japonais dans le nom de fichier dans l'en-tête HTTP
Créons une application TODO en Java 5 Changer l'affichage de TODO
Comment obtenir la date avec Java
L'histoire de l'écriture de Java dans Emacs
[Java8] Recherchez le répertoire et récupérez le fichier
Augmenter dynamiquement le nombre d'éléments dans un tableau bidimensionnel Java (tableau multidimensionnel)
Mémo: [Java] Si un fichier se trouve dans le répertoire surveillé, traitez-le.
Comment savoir quelle version Java d'un fichier de classe a été compilée
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
[Java] Récupère MimeType à partir du contenu du fichier avec Apathce Tika [Kotlin]
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
JAVA: jar, aar, affichez le contenu du fichier
L'histoire de la fabrication d'un Othello ordinaire à Java
Lire une chaîne dans un fichier PDF avec Java
À propos de l'idée des classes anonymes en Java
Une histoire sur le JDK à l'ère de Java 11
[Java] Accéder à l'URL signée de s3 (version signée 2)
L'histoire de l'apprentissage de Java dans la première programmation
[Java] Obtenir la longueur de la chaîne de paire de substitution
[JAVA] Récupère uniquement le nom du fichier, à l'exclusion de l'extension
Ressentez le passage du temps même à Java
Un fichier bat qui utilise Java dans Windows
[Java] Lire les fichiers dans src / main / resources
Un examen rapide de Java appris en classe
[Java] Comment obtenir l'URL redirigée finale
Importer des fichiers de la même hiérarchie en Java
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Valider le jeton d'ID d'un utilisateur authentifié par AWS Cognito en Java
Exemple de code pour obtenir les valeurs de type SQL clés dans Java + MySQL 8.0
Obtenir une liste d'informations MBean pour les applications Java
Un examen rapide de Java appris en classe part4
[Java] Vérifiez la version JDK du fichier war construit
Obtenez le nom du scénario de test dans la classe de test JUnit
[Java] Comment obtenir la valeur maximale de HashMap
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
Comment enregistrer des fichiers avec l'extension spécifiée sous le répertoire spécifié en Java dans la liste
Remarque sur l'initialisation des champs dans le didacticiel Java
Obtenez une liste de classes dans un package spécifique à Guava