Help us understand the problem. What is going on with this article?

【C#】Flickr.Netでtag検索をする【API】

More than 3 years have passed since last update.

今回のゴール

Flickrでタグ検索をして画像URLを取得すること。

準備するもの

  • FlickrNet API Library
  • API key

visualstudioを利用している方はNuGetから FlickrNet API Libraryを入れるのが楽かもしれません。

APIkeyの取得方法はこちらを参考にしてください。
flickr APIの使い方まとめ

今回は検索が目的ですので、tokenを使ってoAuthで認証する必要はありません。

コードを書く

imgAPI.cs
namespace FlickrAPI
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using FlickrNet;

    /// <summary>
    /// イメージAPIを扱うクラス
    /// </summary>
    public class ImgAPI
    {
        private Flickr flickr;
        private string flickrApiKey = "取得してきたAIPkey";
        private PhotoCollection photos;

        /// <summary>
        /// Initializes a new instance of the <see cref="ImgAPI"/> class.
        /// </summary>
        public ImgAPI()
        {
            this.flickr = new Flickr(this.flickrApiKey);
            this.photos = new PhotoCollection();
        }

        /// <summary>
        /// 写真のURLを取得するメソッド
        /// タグの中からランダムに取得してくる
        /// </summary>
        /// <returns>ingUrl 画像URL</returns>
        public void GetImg()
        {
            Random random = new Random();
            PhotoSearchOptions opt = new PhotoSearchOptions();
            opt.Tags = "Mountain";
            opt.TagMode = TagMode.AllTags;
            this.photos = this.flickr.PhotosSearch(opt);
            var imgNumber = random.Next(this.photos.Count);
            var imgUrl = this.photos[imgNumber].LargeSquareThumbnailUrl;
            counsole.WriteLine(imgUrl);
        }
    }
}


各種説明

using FlickrNet;

これがないと始まりません

Flickr

Flickrというクラスが全ての根になっています。

PhotoCollection

このクラスで返ってきた結果から今回はURLを取り出して、表示します。

PhotoSearchOptions

今回はタグ検索だけですのでシンプルですが、他にもいろいろパラメータがあります。

タグ検索した結果の中から乱数を利用してランダムに取得してきています。
今回は直接Tagsプロパティにタグを入力していますが、相手の入力を受け取るようにしてみても面白いですね。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away