今回のゴール
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プロパティにタグを入力していますが、相手の入力を受け取るようにしてみても面白いですね。