谷歌api Google_Service_Exception问题

时间:2017-05-12 15:27:25

标签: php google-api gmail-api google-api-php-client

这是我在service.php文件中的代码:

putenv('GOOGLE_APPLICATION_CREDENTIALS=service-account.json');

          $client = new Google_Client();
          $client->useApplicationDefaultCredentials();
          $client->setSubject('xxxx@xxx.com');

          $client->setScopes('https://mail.google.com','https://www.googleapis.com/auth/gmail.modify');

          $service = new Google_Service_Gmail($client);


          $messages_response = $service->users_messages->listUsersMessages('xxxx@xxx.com');

          foreach ($messages_response as $key => $value) {

            $message = $service->users_messages->get('xxxx@xxx.com', $value->getId());   
            $message_text = base64_decode(strtr($message->getPayload()->getParts()[0]->body['data'],'-_', '+/'));
            $headers = $message->getPayload()->getHeaders();
            foreach ($headers as $key_headers => $value_headers) {

              if($value_headers['name'] == 'Subject')
              {
                error_log($value_headers['value']);
              }

            }
          }

如果我使用php service.php从控制台运行此代码,我会收到没有任何问题的电子邮件主题。

但是如果我在控制器方法中放置相同的代码,让我们假设User.php控制器有方法test()并且我在这个test()方法中放置相同的代码我收到此错误:

  

类型异常' Google_Service_Exception'发生在消息:{   "错误":{"错误":[{       "域":"全球",       "原因":"不足的承诺",       "消息":"权限不足" },"代码":403,"消息":"权限不足" }}

     在第118行的文件供应商\ google \ apiclient \ src \ Google \ Http \ REST.php中

我也将service-account.json放在我的controllers文件夹中。

任何帮助或建议?

0 个答案:

没有答案