ふとしたことからYouTubeAPIを使う必要が出てきたので、Google APIを久々に触ってみる。 作りたいものはYouTubeで自分がアップロードした動画のリストなどを取得するC#.NETで開発したスタンドアロンアプリ。 一気に解説するのは大変そうなのと、このあたりを解説している日本語ページがまったくなかったで、まずは導入編から。 〔参考資料〕 Google APIs Client Library for .NET (本家) https://developers.google.com/api-client-library/dotnet/get_started 書いてあるとおりで動くなら問題ないのだけど、動かないので。 ちなみに以下、開発環境はVisual Studio 2010です。 具体的にはスレッド周りのコードが動きません、たぶん.NETが古いからコンパイルできない。 http://www.atmarkit.co.jp/ait/articles/1109/30/news126.html 以下、実際に動いたソース。コンソールアプリの新規プロジェクト作成ウィザードからべたっとはりつけてしまっても動くはずです。 [csharp] using System; using Google.Apis.Discovery.v1; using Google.Apis.Discovery.v1.Data; using Google.Apis.Services; namespace Discovery.ListAPIs { class Program { [STAThread] static void Main(string[] args) { Console.WriteLine(“Discovery API Sample”); Console.WriteLine(“====================”); try { // new Program().Run().Wait(); new Program().Run(); } catch (AggregateException ex) { foreach (var e in ex.InnerExceptions) { Console.WriteLine(“ERROR: “ + e.Message); } } Console.WriteLine(“Press any key to continue…”); Console.ReadKey(); } // private async Task Run() private void Run() { // Create the service. var service = new DiscoveryService(new BaseClientService.Initializer { ApplicationName = “Discovery Sample” //, // APIKey = “[API Key]”, //今回は必要ない }); // Run the request. Console.WriteLine(“Executing a list request…”); // var result = await service.Apis.List().ExecuteAsync(); var result = service.Apis.List().ExecuteAsync(); // Display the results. if (result.Result.Items != null) { foreach (DirectoryList.ItemsData api in result.Result.Items) { Console.WriteLine(api.Id + “ - “ + api.Title); } } } } } [/csharp] コメントアウトしているところは、本家GoogleAPIのサイトでは非同期関数で実装しているところを、わかりやすく普通の関数で実装しなおしている部分です。 なお、ビルドを通すためにはNuGetを使って必要なライブラリを追加していく必要があります。 NuGetのVisual Studioへのインストールはこちらをご参考。 http://www.atmarkit.co.jp/fdotnet/chushin/nuget_01/nuget_01_01.html NuGetで管理できるGoogle APIでどんなライブラリが存在するかはこちらのリンクがわかりやすいです。 NuGetでパッケージ管理できるGoogleAPI一覧 具体的にはNuGetのパッケージマネージャで、以下のコマンドを使ってパッケージをインストールします。
PM> Install-Package Google.Apis
PM> Install-Package Google.Apis.Tasks.v1
PM> Install-Package Google.Apis.Discovery.v1
無事ビルドがとおり、実行すると、利用できるGoogle APIの一覧が表示できます。
Discovery API Sample ==================== Executing a list request... adexchangebuyer:v1 - Ad Exchange Buyer API adexchangebuyer:v1.1 - Ad Exchange Buyer API adexchangebuyer:v1.2 - Ad Exchange Buyer API adexchangebuyer:v1.3 - Ad Exchange Buyer API adexchangeseller:v1 - Ad Exchange Seller API adexchangeseller:v1.1 - Ad Exchange Seller API adexchangeseller:v2.0 - Ad Exchange Seller API admin:directory_v1 - Admin Directory API admin:email_migration_v2 - Email Migration API v2 admin:reports_v1 - Admin Reports API adsense:v1.2 - AdSense Management API adsense:v1.3 - AdSense Management API adsense:v1.4 - AdSense Management API adsensehost:v4.1 - AdSense Host API analytics:v2.4 - Google Analytics API analytics:v3 - Google Analytics API androidpublisher:v1 - Google Play Android Developer API androidpublisher:v1.1 - Google Play Android Developer API androidpublisher:v2 - Google Play Android Developer API appsactivity:v1 - Google Apps Activity API appstate:v1 - Google App State API audit:v1 - Enterprise Audit API autoscaler:v1beta2 - Google Compute Engine Autoscaler API bigquery:v2 - BigQuery API blogger:v2 - Blogger API blogger:v3 - Blogger API books:v1 - Books API calendar:v3 - Calendar API civicinfo:us_v1 - Google Civic Information API civicinfo:v1 - Google Civic Information API civicinfo:v2 - Google Civic Information API cloudmonitoring:v2beta1 - Cloud Monitoring API compute:v1 - Compute Engine API content:v2 - Content API for Shopping coordinate:v1 - Google Maps Coordinate API customsearch:v1 - CustomSearch API datastore:v1beta1 - Google Cloud Datastore API datastore:v1beta2 - Google Cloud Datastore API dfareporting:v1 - DFA Reporting API dfareporting:v1.1 - DFA Reporting API dfareporting:v1.2 - DFA Reporting API dfareporting:v1.3 - DFA Reporting API discovery:v1 - APIs Discovery Service dns:v1beta1 - Google Cloud DNS API doubleclickbidmanager:v1 - DoubleClick Bid Manager API doubleclicksearch:v2 - DoubleClick Search API drive:v1 - Drive API drive:v2 - Drive API freebase:v1-sandbox - Freebase Search freebase:v1sandbox - Freebase Search freebase:v1 - Freebase Search fusiontables:v1 - Fusion Tables API games:v1 - Google Play Game Services API gamesManagement:v1management - Google Play Game Services Management API gan:v1beta1 - Google Affiliate Network API genomics:v1beta - Genomics API gmail:v1 - Gmail API groupsmigration:v1 - Groups Migration API groupssettings:v1 - Groups Settings API identitytoolkit:v3 - Google Identity Toolkit API licensing:v1 - Enterprise License Manager API manager:v1beta2 - Deployment Manager API mapsengine:exp2 - Google Maps Engine API mapsengine:v1 - Google Maps Engine API mirror:v1 - Google Mirror API oauth2:v1 - Google OAuth2 API oauth2:v2 - Google OAuth2 API pagespeedonline:v1 - PageSpeed Insights API plus:v1 - Google+ API plusDomains:v1 - Google+ Domains API prediction:v1.2 - Prediction API prediction:v1.3 - Prediction API prediction:v1.4 - Prediction API prediction:v1.5 - Prediction API prediction:v1.6 - Prediction API pubsub:v1beta1 - Cloud Pub/Sub API qpxExpress:v1 - QPX Express API replicapool:v1beta1 - Replica Pool API reseller:v1sandbox - Enterprise Apps Reseller API reseller:v1 - Enterprise Apps Reseller API resourceviews:v1beta1 - Resource Views API resourceviews:v1beta2 - Resource Views API siteVerification:v1 - Google Site Verification API spectrum:v1explorer - Google Spectrum Database API sqladmin:v1beta1 - Cloud SQL Administration API sqladmin:v1beta3 - Cloud SQL Administration API storage:v1 - Cloud Storage API storage:v1beta1 - Cloud Storage API storage:v1beta2 - Cloud Storage API taskqueue:v1beta1 - TaskQueue API taskqueue:v1beta2 - TaskQueue API tasks:v1 - Tasks API translate:v2 - Translate API urlshortener:v1 - URL Shortener API webfonts:v1 - Google Fonts Developer API webmasters:v3 - Webmaster Tools API youtube:v3 - YouTube Data API youtubeAnalytics:v1 - YouTube Analytics API youtubeAnalytics:v1beta1 - YouTube Analytics API Press any key to continue...
さてこれでYouTube Data API v3.0が利用できますね。 このあたりはまた今度。 追記:プロジェクトはGithubでも公開しておきましたので、ご活用ください。 https://github.com/kaitas/ShiraiLabOpen/tree/master/GoogleAPIs/GoogleAPIsListing