YouTube / v3 / search API在.NET中未返回结果

时间:2020-08-03 23:06:09

标签: c# youtube youtube-api youtube-data-api

这是我第一次使用YouTube v3搜索API,因此我有一些问题和一些代码需要查看。

这时我的基本问题是我正在使用Google提供的示例代码,但没有得到任何结果。该应用程序挂起:

// Call the search.list method to retrieve results matching the specified query term.
var searchListResponse = await searchListRequest.ExecuteAsync();

这是我的示例代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using Google.Apis.Util.Store;
using Google.Apis.YouTube.v3;
using Google.Apis.YouTube.v3.Data;

using CPCommon;

namespace CPDataLayer
{
    public class YouTubeSearch : DataLayerBase
    {

        /// <summary>
        /// YouTube Data API v3 sample: search by keyword.
        /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher.
        /// See https://developers.google.com/api-client-library/dotnet/get_started
        ///
        /// Set ApiKey to the API key value from the APIs & auth > Registered apps tab of
        ///   https://cloud.google.com/console
        /// Please ensure that you have enabled the YouTube Data API for your project.
        /// </summary>
        public void TakedownTargetSearch()
        {
            try
            {
                Run().Wait();
            }
            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()
        {
            var youtubeService = new YouTubeService(new BaseClientService.Initializer()
            {
                // I x'ed out our api key.
                ApiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                ApplicationName = this.GetType().ToString()
            });

            var searchListRequest = youtubeService.Search.List("snippet");
            searchListRequest.Q = "RSSB"; // Replace with your search term.
            searchListRequest.MaxResults = 5;
            searchListRequest.ChannelId = "UCaxt22KHbK-AoPJCfXU034g";


            // Call the search.list method to retrieve results matching the specified query term.
            var searchListResponse = await searchListRequest.ExecuteAsync();

            List<string> videos = new List<string>();
            List<string> channels = new List<string>();
            List<string> playlists = new List<string>();

            // Add each result to the appropriate list, and then display the lists of
            // matching videos, channels, and playlists.
            foreach (var searchResult in searchListResponse.Items)
            {
                switch (searchResult.Id.Kind)
                {
                    case "youtube#video":
                        videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId));
                        break;

                    case "youtube#channel":
                        channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId));
                        break;

                    case "youtube#playlist":
                        playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId));
                        break;
                }
            }
        }
    }
}

我能够在Google Cloud Platform上注册,并且确实获得了我的API密钥以及注册了YouTube API v3搜索API,并且在Metrics API页面中可以看到我已经调用了3次方法。因此,Google接到了我的电话,但是我什么也没回来。这可能是我的事,我希望这很容易发现。

感谢您的帮助。

0 个答案:

没有答案
相关问题