web-dev-qa-db-ja.com

エラー:「メッセージ」:「Youtube Analytics APIを使用する場合は「ログインが必要です」

私は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/ ?」をヒットしましたそれはうまく機能しています。
最初のリクエストを機能させるにはどうすればよいですか?

16
Kishore

リクエストでは、アクセストークンのkey = {your key}を送信しています。access_token= {your oauth2 access token}を送信する必要があります

注:キーは公開リクエストに使用されます。アクセストークンは認証されたリクエスト用です。

19
DaImTo

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
    }
});
4
David Salamon