0

App Engine에서 실행중인 풀 대기열 대기열이 있습니다. https://github.com/google/google-api-nodejs-clientNodeJS 클라이언트로 Google 풀 작업 대기열 인증

내가 요청에 내 서버 API 키를 전달 해요 : : 나는 NodeJS REST 클라이언트에서 외부 대기열에 액세스하려고

var googleapis = require('googleapis'), 
    API_KEY = '...'; 

googleapis 
    .discover('taskqueue', 'v1beta2') 
    .execute(function(err, client) { 
     var req = client.taskqueue.tasks.insert({ 
      project: 'my-project', 
      taskqueue: 'pull-queue', 
      key: API_KEY 
     }); 
     req.execute(function(err, response) { 
      ... 
     }); 
    }); 

그러나 나는 다시 401 "로그인 필요"무엇입니까 메시지. 내가 뭘 놓치고 있니?

OAuth를 사용해야하는 경우 클라이언트가 OAuth 리디렉션 URL을 처리 할 수있는 사용자/브라우저 대신 NodeJS 서버 인 경우 어떻게 액세스 토큰을 얻을 수 있습니까?

답변

1

가장 좋은 방법은 Service Accounts in GCE을 이용하는 것입니다. 이것은 GCE 프로젝트의 모든 사용자가 사용할 수있는 가상 사용자 계정입니다. 줄을 서서 모든 권한을 얻는 것은 약간 까다로울 수 있습니다. 파이썬에서 이것을 수행하는 방법은 an example입니다.

당신이해야 할 일의 일반적인 개요 :

  1. 시작 작업 큐의 OAuth 범위와 GCE 인스턴스를.
  2. queue.yaml의 작업 대기열 ACL에 GCE 서비스 계정을 추가하십시오.
  3. 액세스 토큰을 얻습니다. computeclient.js 자격 증명 개체를 사용하여 HTTP 호출을 자동화 할 수있는 것처럼 보입니다. http://metadata/computeMetadata/v1beta1/instance/service-accounts/default/token
  4. 이 토큰을 작업 대기열 API에 대한 모든 API 호출에 사용하십시오.

저는 Node 전문가가 아니지만, 내가 봤던 곳을 검색하면 GCE의 서비스 계정을 사용하는 방법에 대한 예가 발견되었습니다. 이를 태스크 큐 API에 맞게 수정하는 것이 간단해야합니다.