私はyoutube apiを使用しています。この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} "
401を与える
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
しかし、私はエクスプローラーで「 https://developers.google.com/apis-Explorer/ ?」をヒットしましたそれはうまく機能しています。
最初のリクエストを機能させるにはどうすればよいですか?
リクエストでは、アクセストークンのkey = {your key}を送信しています。access_token= {your oauth2 access token}を送信する必要があります
注:キーは公開リクエストに使用されます。アクセストークンは認証されたリクエスト用です。
Google APIでJWT認証を使用している誰かがこの質問に出くわした場合(サービスアカウントを使用している場合など)、必ずauth: <your jwtClient>
次のようなAPI呼び出しで:
まず、トークンを取得:
// 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");
}
});
次に、APIを呼び出します(ただし、auth:jwtClient
part)
drive.files.create({
auth: jwtClient,
resource: {<fileMetadata>},
fields: 'id'
}, function (err, file) {
if (err) {
// Handle error
} else {
// Success is much harder to handle
}
});