6

Ich arbeite mit youtube api. wenn ich traf diese URL "https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2015-01-01&end-date=2016-01-31&metrics=likes%2Cdislikes&key= {API Key}"Fehler: "Nachricht": "Anmeldung erforderlich" bei Verwendung von Youtube Analytics API

es gibt 401

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 

aber ich hited im Explorer "https://developers.google.com/apis-explorer/?" es funktioniert gut.
Wie kann ich die erste Anfrage bearbeiten?

+0

sollten Sie Ihre Frage, dies ist eine Anfrage an die YouTube Analytics API. Sie müssen für diese Anfrage authentifiziert werden. Verwenden Sie Oauth2. – DaImTo

+0

Ich habe bereits das Zugriffs-Token von Oauth von einem anderen Mittel. Wie bekomme ich diese Daten? –

+0

versuchen Sie https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2015-01-01&end-date=2016-01-31&metrics=likes%2Cdislikes&access_token={access Token von oauth} – DaImTo

Antwort

9

In Ihrer Anfrage Sie senden key = {Ihren Schlüssel} für einen Zugriffstoken sollten Sie = Senden access_token werden {Ihrem oauth2 Zugriffstoken}

Hinweis: Key wird für öffentliche Anfragen verwendet. Zugriffstoken ist für authentifizierte Anfragen.

0

Wenn jemand anderes mit JWT-Authentifizierung auf einer Google-API stolpert über diese Frage (zB bei Dienstkonten verwenden.) Stellen Sie sicher, auth: <your jwtClient> in Ihrem API-Aufruf enthalten, wie:

Zunächst holen Sie das Token:

// Configure JWT auth client 
var privatekey = require("./<secret>.json") 
var jwtClient = new google.auth.JWT(
    privatekey.client_email, 
    null, 
    privatekey.private_key, 
    ['https://www.googleapis.com/auth/drive'] 
); 

// Authenticate request 
jwtClient.authorize(function (err, tokens) { 
    if (err) { 
    return; 
    } else { 
    console.log("Google autorization complete"); 
    } 
}); 

Dann rufen Sie die API (aber nicht vergessen, die auth:jwtClient Teil)

drive.files.create({ 
    auth: jwtClient, 
    resource: {<fileMetadata>}, 
    fields: 'id' 
    }, function (err, file) { 
    if (err) { 
     // Handle error 
    } else { 
     // Success is much harder to handle 
    } 
});