Bu sayfanın geri kalanında açıklanan adımları tamamladığınızda yaklaşık beş dakika içinde YouTube Data API'ye istek gönderen basit bir Node.js komut satırı uygulamasına sahip olacaksınız.
Bu kılavuzda kullanılan örnek kod, GoogleDevelopers YouTube kanalınınchannel kaynağını alır ve bu kaynaktaki bazı temel bilgileri yazdırır.
Ön koşullar
Bu hızlı başlangıç kılavuzunu çalıştırmak için ihtiyacınız olanlar:
- Node.js'nin yüklü olması gerekir.
- npm paket yönetim aracı (Node.js ile birlikte gelir).
- İnternet erişimi ve web tarayıcısı
- Google Hesabı
1. adım: YouTube Data API'yi etkinleştirin
-
Google Developers Console'da bir proje oluşturmak veya seçmek ve API'yi otomatik olarak etkinleştirmek için bu sihirbazı kullanın. Devam'ı, ardından Kimlik bilgilerine git'i tıklayın.
-
Kimlik bilgileri oluştur sayfasında İptal düğmesini tıklayın.
-
Sayfanın üst kısmındaki OAuth kullanıcı rızası ekranı sekmesini seçin. Bir E-posta adresi seçin, henüz ayarlanmamışsa bir Ürün adı girin ve Kaydet düğmesini tıklayın.
-
Kimlik bilgileri sekmesini seçin, Kimlik bilgileri oluştur düğmesini tıklayın ve OAuth istemci kimliği'ni seçin.
-
Uygulama türü olarak Diğer'i seçin, "YouTube Data API Quickstart" adını girin ve Oluştur düğmesini tıklayın.
-
İletişim kutusunu kapatmak için Tamam'ı tıklayın.
-
İstemci kimliğinin sağındaki (JSON'u indir) düğmesini tıklayın.
-
İndirilen dosyayı çalışma dizininize taşıyın ve
client_secret.jsonolarak yeniden adlandırın.
2. adım: İstemci kitaplığını yükleme
npm kullanarak kitaplıkları yüklemek için aşağıdaki komutları çalıştırın:
npm install googleapis --savenpm install google-auth-library --save
3. adım: Numuneyi ayarlayın
Çalışma dizininizde quickstart.js adlı bir dosya oluşturun ve aşağıdaki kodu kopyalayın:
var fs = require('fs'); var readline = require('readline'); var {google} = require('googleapis'); var OAuth2 = google.auth.OAuth2; // If modifying these scopes, delete your previously saved credentials // at ~/.credentials/youtube-nodejs-quickstart.json var SCOPES = ['https://www.googleapis.com/auth/youtube.readonly']; var TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE) + '/.credentials/'; var TOKEN_PATH = TOKEN_DIR + 'youtube-nodejs-quickstart.json'; // Load client secrets from a local file. fs.readFile('client_secret.json', function processClientSecrets(err, content) { if (err) { console.log('Error loading client secret file: ' + err); return; } // Authorize a client with the loaded credentials, then call the YouTube API. authorize(JSON.parse(content), getChannel); }); /** * Create an OAuth2 client with the given credentials, and then execute the * given callback function. * * @param {Object} credentials The authorization client credentials. * @param {function} callback The callback to call with the authorized client. */ function authorize(credentials, callback) { var clientSecret = credentials.installed.client_secret; var clientId = credentials.installed.client_id; var redirectUrl = credentials.installed.redirect_uris[0]; var oauth2Client = new OAuth2(clientId, clientSecret, redirectUrl); // Check if we have previously stored a token. fs.readFile(TOKEN_PATH, function(err, token) { if (err) { getNewToken(oauth2Client, callback); } else { oauth2Client.credentials = JSON.parse(token); callback(oauth2Client); } }); } /** * Get and store new token after prompting for user authorization, and then * execute the given callback with the authorized OAuth2 client. * * @param {google.auth.OAuth2} oauth2Client The OAuth2 client to get token for. * @param {getEventsCallback} callback The callback to call with the authorized * client. */ function getNewToken(oauth2Client, callback) { var authUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES }); console.log('Authorize this app by visiting this url: ', authUrl); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('Enter the code from that page here: ', function(code) { rl.close(); oauth2Client.getToken(code, function(err, token) { if (err) { console.log('Error while trying to retrieve access token', err); return; } oauth2Client.credentials = token; storeToken(token); callback(oauth2Client); }); }); } /** * Store token to disk be used in later program executions. * * @param {Object} token The token to store to disk. */ function storeToken(token) { try { fs.mkdirSync(TOKEN_DIR); } catch (err) { if (err.code != 'EEXIST') { throw err; } } fs.writeFile(TOKEN_PATH, JSON.stringify(token), (err) => { if (err) throw err; console.log('Token stored to ' + TOKEN_PATH); }); } /** * Lists the names and IDs of up to 10 files. * * @param {google.auth.OAuth2} auth An authorized OAuth2 client. */ function getChannel(auth) { var service = google.youtube('v3'); service.channels.list({ auth: auth, part: 'snippet,contentDetails,statistics', forUsername: 'GoogleDevelopers' }, function(err, response) { if (err) { console.log('The API returned an error: ' + err); return; } var channels = response.data.items; if (channels.length == 0) { console.log('No channel found.'); } else { console.log('This channel\'s ID is %s. Its title is \'%s\', and ' + 'it has %s views.', channels[0].id, channels[0].snippet.title, channels[0].statistics.viewCount); } }); }
4. adım: Örneği çalıştırın
Aşağıdaki komutu kullanarak örneği çalıştırın:
node quickstart.js
Örneği ilk kez çalıştırdığınızda erişimi yetkilendirmeniz istenir:
Web tarayıcınızda sağlanan URL'ye gidin.
Henüz Google Hesabınıza giriş yapmadıysanız giriş yapmanız istenir. Birden fazla Google Hesabı'na giriş yaptıysanız yetkilendirme için kullanmak üzere bir hesap seçmeniz istenir.
- Kabul et düğmesini tıklayın.
- Size verilen kodu kopyalayın, komut satırı istemine yapıştırın ve Enter tuşuna basın.
Notlar
- Yetkilendirme bilgileri dosya sisteminde depolanır. Bu nedenle, sonraki yürütme işlemlerinde yetkilendirme istenmez.
- Bu örnekteki yetkilendirme akışı, bir komut satırı uygulaması için tasarlanmıştır. YouTube Data API'yi kullanan bir web uygulamasında yetkilendirme işleminin nasıl yapılacağı hakkında bilgi edinmek için Web Sunucusu Uygulamaları için OAuth 2.0'ı Kullanma başlıklı makaleyi inceleyin.
Diğer bağlamlarda yetkilendirme işleminin nasıl yapılacağı hakkında bilgi edinmek için kitaplığın README dosyasının Yetkilendirme ve Kimlik Doğrulama bölümüne bakın.