9

Tôi đang cố gắng để truy cập vào một hàng đợi kéo từ google tính toán với các tính toán mã thông báo OAuth sử dụng pythonkéo hàng đợi cấp phép từ tính toán

from oauth2client import gce 
from apiclient.discovery import build 
import httplib2 

credentials = gce.AppAssertionCredentials('') 
http = httplib2.Http() 
http=credentials.authorize(http) 
credentials.refresh(http) 
service = build('taskqueue', 'v1beta2', http=http) 
tq=service.taskqueues() 
tq.get(project=MY_APPENGINE_PROJECT, taskqueue=PULL_QUEUE_NAME, getStats=True).execute() 

tôi tiếp tục nhận được HttpError 403 "bạn không được phép để thực hiện cuộc gọi api này"

vui lòng giúp đỡ, cấu hình nào tôi bị thiếu?

cảm ơn, Shay

+0

Bạn có vượt qua phạm vi dịch vụ theo yêu cầu khi bạn bắt đầu phiên bản không? https://developers.google.com/compute/docs/authentication có thêm thông tin – shollyman

Trả lời

11

CẬP NHẬT: Nhờ @Shay cho hỏi câu hỏi này, vấn đề ông gặp phải là không còn là một vấn đề, như chúng ta đã cho phép bí danh để làm việc (nếu phù hợp) trong Queue công tác API.

Đối với hậu thế đây là câu trả lời ban đầu dưới đây:


Hai trong số những sai lầm phổ biến nhất mà tôi đã thấy là:

  1. Quên để bao gồm các s~ trong dự án App Engine của bạn. Ví dụ, nếu ID ứng dụng của bạn là my-awesome-app, sau đó bạn đang gọi

    tq.get(project='my-awesome-app', taskqueue=PULL_QUEUE_NAME... 
    

    khi nào bạn nên được gọi

    tq.get(project='s~my-awesome-app', taskqueue=PULL_QUEUE_NAME... 
    
  2. Quên để thêm tài khoản dịch vụ Tính đến task queue ACL trong queue.yaml. Để làm điều này, bạn cần phải nhận được tài khoản dịch vụ liên quan đến dự án của bạn và thêm nó vào acl:

    queue: 
    - name: pull-queue 
        mode: pull 
        acl: 
        - writer_email: [email protected] # can do all 
    

    và tất nhiên điều này có nghĩa PULL_QUEUE_NAME = 'pull-queue' đây. Cũng lưu ý, [email protected] nên được thay thế bằng tài khoản dịch vụ cho phiên bản Compute Engine của bạn.

+1

BTW tài khoản dịch vụ có thể được tìm thấy trong bảng điều khiển api trong nhóm ở phần dưới cùng của trang – Shay

+0

Tôi vẫn nhận được 'Không đủ quyền', xem http://stackoverflow.com/questions/37479204/full-api-access-does-not-work-for-taskqueue Vai trò IAM nào phải được đặt cho tài khoản cá thể? – xmedeko

Các vấn đề liên quan