สำคัญ: ตอนนี้คำขอ API ไปยังเมธอดนี้ต้องมีสิทธิ์เข้าถึงขอบเขต https://www.googleapis.com/auth/youtube.readonly
วิธีนี้ช่วยให้คุณดึงข้อมูลรายงาน Analytics ที่แตกต่างกันได้มากมาย คำขอแต่ละรายการใช้พารามิเตอร์การค้นหาเพื่อระบุรหัสช่องหรือเจ้าของเนื้อหา วันที่เริ่มต้น วันที่สิ้นสุด และเมตริกอย่างน้อย 1 รายการ นอกจากนี้ คุณยังระบุพารามิเตอร์การค้นหาเพิ่มเติมได้ เช่น มิติข้อมูล ตัวกรอง และวิธีการจัดเรียง
- เมตริกคือการวัดกิจกรรมของผู้ใช้แต่ละรายการ เช่น ยอดดูวิดีโอหรือการให้คะแนน (การกดชอบและไม่ชอบ)
- มิติข้อมูลคือเกณฑ์ทั่วไปที่ใช้ในการรวบรวมข้อมูล เช่น วันที่เกิดกิจกรรมของผู้ใช้หรือประเทศที่ผู้ใช้อยู่ ในรายงาน ข้อมูลแต่ละแถวจะมีชุดค่าผสมของค่ามิติข้อมูลที่ไม่ซ้ำกัน
- ตัวกรองคือค่ามิติข้อมูลที่ระบุข้อมูลที่จะดึง เช่น คุณสามารถดึงข้อมูลสำหรับประเทศใดประเทศหนึ่ง วิดีโอใดวิดีโอหนึ่ง หรือกลุ่มวิดีโอได้
หมายเหตุ: รายงานเจ้าของเนื้อหามีไว้สำหรับพาร์ทเนอร์เนื้อหาของ YouTube ที่เข้าร่วมโปรแกรมพาร์ทเนอร์ YouTube เท่านั้น
กรณีการใช้งานทั่วไป
ส่งคำขอ
คำขอ HTTP
GET https://youtubeanalytics.googleapis.com/v2/reports
คำขอ API ของข้อมูลวิเคราะห์ YouTube ทั้งหมดต้องได้รับอนุญาต คู่มือการให้สิทธิ์จะอธิบายวิธีใช้โปรโตคอล OAuth 2.0 เพื่อดึงโทเค็นการให้สิทธิ์
คำขอ API ของข้อมูลวิเคราะห์ YouTube ใช้ขอบเขตการให้สิทธิ์ต่อไปนี้
ขอบเขต | |
---|---|
https://www.googleapis.com/auth/yt-analytics.readonly | ดูรายงานข้อมูลวิเคราะห์ YouTube สำหรับเนื้อหา YouTube ของคุณ ขอบเขตนี้ให้สิทธิ์เข้าถึงเมตริกกิจกรรมของผู้ใช้ เช่น จำนวนการดูและจำนวนการให้คะแนน |
https://www.googleapis.com/auth/yt-analytics-monetary.readonly | ดูรายงานด้านการเงินของข้อมูลวิเคราะห์ YouTube สำหรับเนื้อหา YouTube ของคุณ ขอบเขตนี้ให้สิทธิ์เข้าถึงเมตริกกิจกรรมของผู้ใช้ รวมถึงเมตริกรายได้และประสิทธิภาพโฆษณาโดยประมาณ |
https://www.googleapis.com/auth/youtube | จัดการบัญชี YouTube ใน YouTube Analytics API เจ้าของช่องจะใช้ขอบเขตนี้เพื่อจัดการกลุ่มข้อมูลวิเคราะห์ YouTube และรายการกลุ่ม |
https://www.googleapis.com/auth/youtubepartner | ดูและจัดการเนื้อหา YouTube และเนื้อหาที่เกี่ยวข้องใน YouTube ใน YouTube Analytics API เจ้าของเนื้อหาจะใช้ขอบเขตนี้เพื่อจัดการกลุ่มข้อมูลวิเคราะห์ YouTube และรายการในกลุ่ม |
พารามิเตอร์
ตารางต่อไปนี้แสดงพารามิเตอร์การค้นหาที่จำเป็นและไม่บังคับสำหรับคำขอ API เพื่อดึงข้อมูลรายงานการค้นหา พารามิเตอร์การค้นหามาตรฐานที่แสดงในตารางยังเป็นพารามิเตอร์ที่ไม่บังคับและรองรับโดย Google APIs หลายรายการด้วย
พารามิเตอร์ | ||
---|---|---|
พารามิเตอร์ที่จำเป็น | ||
endDate |
string วันที่สิ้นสุดสำหรับการดึงข้อมูล YouTube Analytics ค่าควรอยู่ในรูปแบบ YYYY-MM-DD การตอบกลับของ API มีข้อมูลจนถึงวันสุดท้ายที่เมตริกทั้งหมดในการค้นหาพร้อมใช้งาน ณ เวลาที่ค้นหา ดังนั้น ตัวอย่างเช่น หากคำขอระบุวันที่สิ้นสุดเป็นวันที่ 5 กรกฎาคม 2017 และค่าของเมตริกที่ขอทั้งหมดใช้ได้จนถึงวันที่ 3 กรกฎาคม 2017 เท่านั้น วันที่ดังกล่าวจะเป็นวันที่ล่าสุดที่มีการรวมข้อมูลไว้ในการตอบกลับ (แม้ว่าข้อมูลสำหรับเมตริกบางรายการที่ขอจะพร้อมใช้งานในวันที่ 4 กรกฎาคม 2017 ก็ตาม) หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า end-date |
|
ids |
string ระบุช่อง YouTube หรือเจ้าของเนื้อหาที่คุณกำลังดึงข้อมูลYouTube Analytics
|
|
metrics |
string รายการเมตริกYouTube Analyticsที่คั่นด้วยคอมมา เช่น views หรือ likes,dislikes ดูรายการรายงานที่คุณเรียกดูได้และเมตริกที่มีในแต่ละรายงานได้ในเอกสารประกอบสำหรับรายงานช่องหรือรายงานเจ้าของเนื้อหา (เอกสารเมตริกมีคำจำกัดความของเมตริกทั้งหมด)
|
|
startDate |
string วันที่เริ่มต้นสำหรับการดึงข้อมูล YouTube Analytics ค่าควรอยู่ในรูปแบบ YYYY-MM-DD หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า
start-date |
|
พารามิเตอร์ที่ไม่บังคับ | ||
currency |
string สกุลเงินที่ API จะใช้เพื่อระบุเมตริกรายได้โดยประมาณต่อไปนี้ estimatedRevenue, estimatedAdRevenue, estimatedRedPartnerRevenue, grossRevenue, cpm, playbackBasedCpm ค่าที่ API แสดงสําหรับเมตริกเหล่านั้นคือค่าประมาณที่คํานวณโดยใช้อัตราแลกเปลี่ยนที่เปลี่ยนแปลงทุกวัน หากไม่มีการขอเมตริกเหล่านั้น ระบบจะละเว้นพารามิเตอร์ ค่าพารามิเตอร์คือรหัสสกุลเงิน 3 ตัวอักษรตามมาตรฐาน ISO 4217 จากรายการสกุลเงินด้านล่าง API จะแสดงข้อผิดพลาดหากมีการระบุสกุลเงินที่ไม่รองรับ ค่าเริ่มต้นคือ USD |
|
dimensions |
string รายการมิติข้อมูลของข้อมูลวิเคราะห์ YouTube ที่คั่นด้วยคอมมา เช่น video หรือ ageGroup,gender ดูรายการรายงานที่คุณดึงข้อมูลได้และมิติข้อมูลที่ใช้สำหรับรายงานเหล่านั้นในเอกสารประกอบสำหรับรายงานช่องหรือรายงานเจ้าของเนื้อหา (เอกสารมิติข้อมูลมีคำจำกัดความของมิติข้อมูลทั้งหมด)
|
|
filters |
string รายการตัวกรองที่ควรใช้เมื่อเรียกข้อมูล YouTube Analytics เอกสารประกอบสำหรับรายงานช่องและรายงานเจ้าของเนื้อหาจะระบุมิติข้อมูลที่ใช้กรองแต่ละรายงานได้ และเอกสารมิติข้อมูลจะกำหนดมิติข้อมูลเหล่านั้น หากคำขอใช้ตัวกรองหลายรายการ ให้รวมตัวกรองเหล่านั้นด้วยเครื่องหมายอัฒภาค ( ; ) แล้วตารางผลลัพธ์ที่ส่งคืนจะตรงตามตัวกรองทั้ง 2 รายการ เช่น filters ค่าพารามิเตอร์ video==dMH0bHeiRNg;country==IT จะจํากัดชุดผลลัพธ์ให้รวมข้อมูลสําหรับวิดีโอที่ระบุในอิตาลีการระบุค่าหลายค่าสําหรับตัวกรอง API รองรับความสามารถในการระบุค่าหลายค่าสําหรับตัวกรอง video , playlist และ channel โดยระบุรายการรหัสวิดีโอ เพลย์ลิสต์ หรือช่องที่คั่นด้วยคอมมาซึ่งควรกรองการตอบกลับของ API เช่น ค่าพารามิเตอร์ filters ของ video==pd1FJh59zxQ,Zhawgd0REhA;country==IT จะจำกัดชุดผลลัพธ์ให้รวมข้อมูลสำหรับวิดีโอที่ระบุในอิตาลี ค่าพารามิเตอร์ระบุรหัสได้สูงสุด 500 รายการเมื่อระบุค่าหลายค่าสำหรับตัวกรองเดียวกัน คุณยังเพิ่มตัวกรองนั้นลงในรายการมิติข้อมูลที่ระบุสำหรับคำขอได้ด้วย แม้ว่าตัวกรองจะไม่ได้อยู่ในรายการมิติข้อมูลที่รองรับสำหรับรายงานใดรายงานหนึ่งก็ตาม หากคุณเพิ่มตัวกรองลงในรายการมิติข้อมูล API จะใช้ค่าตัวกรองเพื่อจัดกลุ่มผลลัพธ์ด้วย เช่น สมมติว่าคุณดึงรายงานแหล่งที่มาของการเข้าชมของช่อง ซึ่งรวบรวมสถิติการดูตามลักษณะที่ผู้ชมเข้าถึงเนื้อหาวิดีโอของช่อง สมมติว่าคำขอของคุณระบุรายการวิดีโอ 10 รายการที่ควรแสดงข้อมูลผ่านพารามิเตอร์ filters ของคำขอ
|
|
includeHistoricalChannelData |
boolean หมายเหตุ: พารามิเตอร์นี้ใช้กับรายงานเจ้าของเนื้อหาเท่านั้น ระบุว่าการตอบกลับของ API ควรมีข้อมูลเวลาในการรับชมและยอดดูของช่องจากระยะเวลาก่อนที่ระบบจะลิงก์ช่องกับเจ้าของเนื้อหาหรือไม่ ค่าพารามิเตอร์เริ่มต้นคือ false ซึ่งหมายความว่าการตอบกลับของ API จะมีเฉพาะเวลาในการดูและข้อมูลการดูตั้งแต่วันที่ที่ลิงก์ช่องกับเจ้าของเนื้อหาโปรดทราบว่าช่องต่างๆ อาจลิงก์กับเจ้าของเนื้อหาในวันที่ต่างกัน หากคำขอ API ดึงข้อมูลสำหรับหลายช่องทางและค่าพารามิเตอร์คือ false การตอบกลับของ API จะมีข้อมูลตามวันที่ลิงก์สำหรับแต่ละช่องทางที่เกี่ยวข้อง หากค่าพารามิเตอร์เป็น true การตอบกลับของ API จะมีข้อมูลที่ตรงกับวันที่ที่ระบุในคำขอ APIหมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า include-historical-channel-data |
|
maxResults |
integer จำนวนแถวสูงสุดที่จะรวมไว้ในการตอบกลับ หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า max-results |
|
sort |
string รายการมิติข้อมูลหรือเมตริกที่คั่นด้วยคอมมาซึ่งกำหนดลำดับการจัดเรียงข้อมูลของข้อมูลวิเคราะห์ YouTube โดยค่าเริ่มต้น ลำดับการจัดเรียงจะเป็นจากน้อยไปมาก คำนำหน้า - ทำให้เกิดลำดับการจัดเรียงจากมากไปน้อย
|
|
startIndex |
integer ดัชนีแบบ 1 ของเอนทิตีแรกที่จะดึงข้อมูล (ค่าเริ่มต้นคือ 1 ) ใช้พารามิเตอร์นี้เป็นกลไกการแบ่งหน้าพร้อมกับพารามิเตอร์ max-results หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า start-index |
|
พารามิเตอร์มาตรฐาน | ||
access_token |
OAuth 2.0 โทเค็นสำหรับผู้ใช้ปัจจุบัน
|
|
alt |
พารามิเตอร์นี้ไม่รองรับใน API เวอร์ชัน 2 ซึ่งรองรับเฉพาะการตอบกลับ JSON รูปแบบข้อมูลสำหรับการตอบกลับ API
|
|
callback |
ฟังก์ชัน Callback
|
|
prettyPrint |
แสดงผลการตอบกลับพร้อมการเยื้องและการขึ้นบรรทัดใหม่
|
|
quotaUser |
พารามิเตอร์นี้รองรับใน API เวอร์ชัน 1 ซึ่งตอนนี้เลิกใช้งานแล้ว API เวอร์ชัน 2 ไม่รองรับพารามิเตอร์นี้ | |
userIp |
พารามิเตอร์นี้รองรับใน API เวอร์ชัน 1 ซึ่งตอนนี้เลิกใช้งานแล้ว API เวอร์ชัน 2 ไม่รองรับพารามิเตอร์นี้ |
เนื้อความของคำขอ
อย่าส่งเนื้อหาคำขอเมื่อเรียกใช้เมธอดนี้
การตอบกลับ
ดังที่ระบุไว้ในคำจำกัดความพารามิเตอร์ alt
API สามารถแสดงการตอบกลับในรูปแบบ JSON หรือ CSV ข้อมูลเกี่ยวกับเนื้อหาการตอบกลับสำหรับแต่ละประเภทจะแสดงด้านล่าง
{ "kind": "youtubeAnalytics#resultTable", "columnHeaders": [ { "name": string, "dataType": string, "columnType": string }, ... more headers ... ], "rows": [ [ {value}, {value}, ... ] ] }
พร็อพเพอร์ตี้ | |
---|---|
kind |
string ค่านี้ระบุประเภทของข้อมูลที่รวมอยู่ในการตอบกลับของ API สำหรับเมธอด query ค่าพร็อพเพอร์ตี้ kind จะเป็น youtubeAnalytics#resultTable อย่างไรก็ตาม หาก API เพิ่มการรองรับวิธีการอื่นๆ การตอบกลับ API สำหรับวิธีการเหล่านั้นอาจทำให้เกิดค่าพร็อพเพอร์ตี้ kind อื่นๆ |
columnHeaders[] |
list ค่านี้จะระบุข้อมูลเกี่ยวกับข้อมูลที่แสดงในช่อง rows แต่ละรายการในcolumnHeaders list จะระบุฟิลด์ที่ส่งคืนในค่า rows ซึ่งมีรายการข้อมูลที่คั่นด้วยคอมมาcolumnHeaders list จะเริ่มต้นด้วยมิติข้อมูลที่ระบุในคำขอ API ตามด้วยเมตริกที่ระบุในคำขอ API ลำดับของทั้งมิติข้อมูลและเมตริกจะตรงกับลำดับในคำขอ APIตัวอย่างเช่น หากคำขอ API มีพารามิเตอร์ dimensions=ageGroup,gender&metrics=viewerPercentage การตอบกลับของ API จะแสดงผลคอลัมน์ตามลำดับนี้ ageGroup , gender , viewerPercentage |
columnHeaders[].name |
string ชื่อของมิติข้อมูลหรือเมตริก |
columnHeaders[].columnType |
string ประเภทของคอลัมน์ ( DIMENSION หรือ METRIC ) |
columnHeaders[].dataType |
string ประเภทของข้อมูลในคอลัมน์ ( STRING , INTEGER , FLOAT ฯลฯ) |
rows[] |
list รายการประกอบด้วยแถวทั้งหมดของตารางผลลัพธ์ แต่ละรายการในลิสต์คืออาร์เรย์ที่มีข้อมูลที่คั่นด้วยคอมมาซึ่งสอดคล้องกับข้อมูล 1 แถว ลำดับของฟิลด์ข้อมูลที่คั่นด้วยคอมมาจะตรงกับลำดับของคอลัมน์ที่แสดงในฟิลด์ columnHeaders หากไม่มีข้อมูลสำหรับคำค้นหาที่ระบุ ระบบจะไม่รวมองค์ประกอบ rows ไว้ในการตอบกลับการตอบกลับสำหรับคำค้นหาที่มีมิติข้อมูล day จะไม่มีแถวสำหรับวันล่าสุด |
day, views, likes, ... "2012-01-01", 12.0, 3, ... "2012-01-02", 16.0, 2, ... "2012-01-03", 18.0, 8, ... ...
ตัวอย่าง
หมายเหตุ: ตัวอย่างโค้ดต่อไปนี้อาจไม่ได้แสดงถึงภาษาโปรแกรมที่รองรับทั้งหมด ดูรายการภาษาที่รองรับได้ในเอกสารประกอบไลบรารีของไคลเอ็นต์
JavaScript
ตัวอย่างนี้เรียกใช้ YouTube Analytics API เพื่อดึงข้อมูลยอดดูรายวันและเมตริกอื่นๆ สำหรับช่องของผู้ใช้ที่ให้สิทธิ์ ในปีปฏิทิน 2017 ตัวอย่างใช้ไลบรารีของไคลเอ็นต์ JavaScript สำหรับ Google APIsก่อนเรียกใช้ตัวอย่างนี้ในเครื่องเป็นครั้งแรก คุณต้องตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์สำหรับโปรเจ็กต์ของคุณโดยทำดังนี้
- สร้างหรือเลือกโปรเจ็กต์ในคอนโซล Google API
- เปิดใช้ YouTube Analytics API สำหรับโปรเจ็กต์
- ที่ด้านบนของหน้าข้อมูลเข้าสู่ระบบ ให้เลือกแท็บหน้าจอขอความยินยอม OAuth เลือกอีเมล ป้อนชื่อผลิตภัณฑ์หากยังไม่ได้ตั้งค่า แล้วคลิกปุ่มบันทึก
- ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ Oauth
- เลือกประเภทแอปพลิเคชันเป็นเว็บแอปพลิเคชัน
- ในช่องต้นทาง JavaScript ที่ได้รับอนุญาต ให้ป้อน URL ที่คุณจะใช้แสดงตัวอย่างโค้ด เช่น คุณอาจใช้
http://localhost:8000
หรือhttp://yourserver.example.com
คุณเว้นช่อง URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตว่างไว้ได้ - คลิกปุ่มสร้างเพื่อสร้างข้อมูลเข้าสู่ระบบให้เสร็จสมบูรณ์
- ก่อนปิดกล่องโต้ตอบ ให้คัดลอกรหัสไคลเอ็นต์ ซึ่งคุณจะต้องใส่ลงในตัวอย่างโค้ด
จากนั้นบันทึกตัวอย่างลงในไฟล์ในเครื่อง ในตัวอย่าง ให้ค้นหาบรรทัดต่อไปนี้ แล้วแทนที่ YOUR_CLIENT_ID ด้วยรหัสไคลเอ็นต์ที่คุณได้รับเมื่อตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
ตอนนี้คุณพร้อมที่จะทดสอบตัวอย่างแล้ว โดยทำดังนี้
- เปิดไฟล์ในเครื่องจากเว็บเบราว์เซอร์ แล้วเปิดคอนโซลการแก้ไขข้อบกพร่องในเบราว์เซอร์ คุณควรเห็นหน้าเว็บที่แสดงปุ่ม 2 ปุ่ม
- คลิกปุ่มให้สิทธิ์และโหลดเพื่อเปิดขั้นตอนการให้สิทธิ์ผู้ใช้ หากให้สิทธิ์แอปในการดึงข้อมูลช่อง คุณควรเห็นบรรทัดต่อไปนี้พิมพ์ลงในคอนโซลในเบราว์เซอร์
Sign-in successful GAPI client loaded for API
- หากเห็นข้อความแสดงข้อผิดพลาดแทนบรรทัดด้านบน ให้ยืนยันว่าคุณกำลังโหลดสคริปต์จาก URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตซึ่งคุณตั้งค่าไว้สำหรับโปรเจ็กต์ และคุณได้ใส่รหัสไคลเอ็นต์ลงในโค้ดตามที่อธิบายไว้ข้างต้น
- คลิกปุ่มเรียกใช้เพื่อเรียก API คุณควรเห็นออบเจ็กต์
response
พิมพ์ไปยังคอนโซลในเบราว์เซอร์ ในออบเจ็กต์นั้น พร็อพเพอร์ตี้result
จะแมปกับออบเจ็กต์ที่มีข้อมูล API
<script src="https://apis.google.com/js/api.js"></script> <script> function authenticate() { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) .then(function() { console.log("Sign-in successful"); }, function(err) { console.error("Error signing in", err); }); } function loadClient() { return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2") .then(function() { console.log("GAPI client loaded for API"); }, function(err) { console.error("Error loading GAPI client for API", err); }); } // Make sure the client is loaded and sign-in is complete before calling this method. function execute() { return gapi.client.youtubeAnalytics.reports.query({ "ids": "channel==MINE", "startDate": "2017-01-01", "endDate": "2017-12-31", "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained", "dimensions": "day", "sort": "day" }) .then(function(response) { // Handle the results here (response.result has the parsed body). console.log("Response", response); }, function(err) { console.error("Execute error", err); }); } gapi.load("client:auth2", function() { gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'}); }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>
Python
ตัวอย่างนี้เรียกใช้ YouTube Analytics API เพื่อดึงข้อมูลยอดดูรายวันและเมตริกอื่นๆ สำหรับช่องของผู้ใช้ที่ให้สิทธิ์ ในปีปฏิทิน 2017 ตัวอย่างใช้ไลบรารีของไคลเอ็นต์ Python สำหรับ Google APIsก่อนเรียกใช้ตัวอย่างนี้ในเครื่องเป็นครั้งแรก คุณต้องตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์สำหรับโปรเจ็กต์ของคุณโดยทำดังนี้
- สร้างหรือเลือกโปรเจ็กต์ในคอนโซล Google API
- เปิดใช้ YouTube Analytics API สำหรับโปรเจ็กต์
- ที่ด้านบนของหน้าข้อมูลเข้าสู่ระบบ ให้เลือกแท็บหน้าจอขอความยินยอม OAuth เลือกอีเมล ป้อนชื่อผลิตภัณฑ์หากยังไม่ได้ตั้งค่า แล้วคลิกปุ่มบันทึก
- ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ Oauth
- เลือกประเภทแอปพลิเคชันอื่นๆ ป้อนชื่อ "Quickstart ของ YouTube Analytics API" แล้วคลิกปุ่มสร้าง
- คลิกตกลงเพื่อปิดกล่องโต้ตอบที่ปรากฏขึ้น
- คลิกปุ่ม (ดาวน์โหลด JSON) ทางด้านขวาของรหัสไคลเอ็นต์
- ย้ายไฟล์ที่ดาวน์โหลดไปยังไดเรกทอรีการทำงาน
นอกจากนี้ คุณยังต้องติดตั้งไลบรารีของไคลเอ็นต์ Google APIs สำหรับ Python และไลบรารีเพิ่มเติมบางรายการด้วย
pip install --upgrade google-api-python-client pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
ตอนนี้คุณพร้อมที่จะทดสอบตัวอย่างแล้ว โดยทำดังนี้
- คัดลอกตัวอย่างโค้ดด้านล่างไปยังไดเรกทอรีการทำงาน
- ในตัวอย่าง ให้อัปเดตค่าของตัวแปร
CLIENT_SECRETS_FILE
ให้ตรงกับตำแหน่งของไฟล์ที่คุณดาวน์โหลดหลังจากตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์ - เรียกใช้โค้ดตัวอย่างในหน้าต่างเทอร์มินัล
python yt_analytics_v2.py
- ทำตามขั้นตอนการให้สิทธิ์ ขั้นตอนการให้สิทธิ์อาจโหลดในเบราว์เซอร์โดยอัตโนมัติ หรือคุณอาจต้องคัดลอก URL การให้สิทธิ์ลงในหน้าต่างเบราว์เซอร์ ในตอนท้ายของขั้นตอนการให้สิทธิ์ ให้วางรหัสการให้สิทธิ์ที่แสดงในเบราว์เซอร์ลงในหน้าต่างเทอร์มินัล แล้วคลิก [return] หากจำเป็น
- การค้นหา API จะทำงานและการตอบสนอง JSON จะแสดงในหน้าต่างเทอร์มินัล
# -*- coding: utf-8 -*- import os import google.oauth2.credentials import google_auth_oauthlib.flow from googleapiclient.discovery import build from googleapiclient.errors import HttpError from google_auth_oauthlib.flow import InstalledAppFlow SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly'] API_SERVICE_NAME = 'youtubeAnalytics' API_VERSION = 'v2' CLIENT_SECRETS_FILE = 'YOUR_CLIENT_SECRET_FILE.json' def get_service(): flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES) credentials = flow.run_console() return build(API_SERVICE_NAME, API_VERSION, credentials = credentials) def execute_api_request(client_library_function, **kwargs): response = client_library_function( **kwargs ).execute() print(response) if __name__ == '__main__': # Disable OAuthlib's HTTPs verification when running locally. # *DO NOT* leave this option enabled when running in production. os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' youtubeAnalytics = get_service() execute_api_request( youtubeAnalytics.reports().query, ids='channel==MINE', startDate='2017-01-01', endDate='2017-12-31', metrics='estimatedMinutesWatched,views,likes,subscribersGained' dimensions='day', sort='day' )
ลองใช้งาน
ใช้ APIs Explorer เพื่อเรียก API นี้และดูคำขอและการตอบกลับของ API