2017-02-03 5 views
0

У меня был очень плохой опыт работы с googleapis, потерянный на одну неделю, но не удалось, поэтому я открываю вопросы, чтобы найти помощь всех.Я хочу получать новые уведомления Gmail от Google Cloud Pub/Sub API

После создания подписки темы & (с конечной точкой URL) из PUB/SUB в Google Cloud Flatform консоли, я использовал nodejs с кодом ниже:

var gmail = google.gmail({ auth: {---my auth---}, version: 'v1' }); 

gmail.users.watch({ 
    userId: "me", 
    resource: { 
     topicName: "projects/responsive-hall-xxxx/topics/xxxx", 
     labelIds: ["INBOX"] 
    } 
} 

Но получил ошибку 403:

{ 
     domain: 'global', 
     reason: 'forbidden', 
     message: 'Error sending test message to Cloud PubSub projects/responsive-hall-xxxx/topics/xxxx : User not authorized to perform this action.' 
} 

Я попытался установить разрешения для моей учетной записи gmail в pub/sub, но все еще не увенчался успехом.

Пожалуйста, помогите, Спасибо!

ответ

0

Как обсуждалось в Cloud Pub/Sub документации, пожалуйста, попробуйте следующее за 403 - Forbidden error:

  • Убедитесь, что вы включили в Google Cloud Pub/Sub API в Cloud Platform Console.
  • Удостоверьтесь, что у принципала, выполняющего запрос, есть необходимые разрешения для соответствующих ресурсов Google Cloud Pub/Sub, особенно если вы используете Google Cloud Pub/Sub для межпроектной связи.
  • Если вы используете Dataflow, убедитесь, что оба и учетная запись службы вычислительного двигателя <projectId>[email protected] имеют required permissions в соответствующем ресурсе Google Cloud Pub/Sub. См. Google Cloud Dataflow Security and Permissions для получения дополнительной информации.
  • Если вы используете App Engine, проверьте Permissions page вашего проекта, чтобы узнать, включена ли учетная запись службы App Engine в качестве редактора. Если это не так, добавьте свою учетную запись службы App Engine в качестве редактора. Обычно учетная запись службы App Engine имеет форму <project-id>@appspot.gserviceaccount.com.

В дополнение к этому, вы можете также проверить push endpoints configuration, как предложено в этом связанной SO post.