前言
前面使用授權部分完成後,就可以開始 API 抓取動作。Oauth2 最難部分已經完成剩下如何使用 Youtube API,API 可以透過 Youtube Data API測試結果在執行 Code部分。
備註 : 這篇主要目的做做看,之後依據情況製作下一章介紹。
Search 搜尋
- API :
https://youtube.googleapis.com/youtube/v3/search
備註 : method 是 Request parameters 使用下方範例需要把他串成string 才能成功執行。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36[ ]
[ ]
public async Task<string> SearchAsync()
{
var users = User.Claims.Select(x => new { type = x.Type, value = x.Value });
string access_token = users.Where(x => x.type == "access_token").Select(x => x.value).FirstOrDefault();
//取得當前 html 字串
HttpClient client = new();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token);
client
.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("text/json"));
string reqUrl = "https://youtube.googleapis.com/youtube/v3/search";
var request = new HttpRequestMessage(HttpMethod.Get, reqUrl);
request.Content = new StringContent("", Encoding.UTF8, "text/json");
var response = await client.SendAsync(request);
if (response.StatusCode != HttpStatusCode.OK)
{
return JsonConvert.SerializeObject(new
{
Success = false,
Message = ""
});
}
var content = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject(content);
return JsonConvert.SerializeObject(new
{
Success = true,
Message = result
});
}
Subscriptions 訂閱
訂閱部分需要傳入相關參數與 Search 不同於需要使用JSON Request 才能達到效果。
1 | [ ] |
參考文件
- Youtube Data API: https://developers.google.com/youtube/v3/docs/search/list
- Github : https://github.com/JontCont/Youtube
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 John Conte!
評論
DisqusGitalk