我正在使用@google-Cloud/bigQuery将Angular10, Firebase与BigQuery集成。我在我的项目中创建了一个函数文件夹,并在其中添加了密钥json文件,该文件是在谷歌云控制台上生成服务帐户json后获得的。
我的BigQuery仪表板中有两个数据集,其源是Google Drive。但当我试图查询这些表时,我得到了一个错误。
在我的函数文件夹中,我有index.js文件,我正在使用以下方法初始化我的BigQuery客户端:
const bigqueryClient = new BigQuery({
keyFilename:'./<name of key Json file from servie account>',
scopes:['https://www.googleapis.com/auth/drive.readonly'],
projectId:<Project-id>
});
获取错误:“访问被拒绝:BigQuery BigQuery:获取驱动器凭据时权限被拒绝。”
另外,如果在初始化大查询客户端时删除projectId,控制台上会记录以下错误:
很抱歉,如果没有项目ID,我们无法连接到云服务。您可以使用名为“GOOGLE\u Cloud\u project”的环境变量指定一个
有人能帮我吗?
要解决此问题,您需要在BigQueryClient文件中定义您的作用域,该文件位于BigQueryLibrary结构application/libraries/BigQueryClient/vendor/google/cloud BigQueryClient/src/BigQueryClient
path的下面路径中。
进行以下更改
const SCOPE=['https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/bigquery',];
const INSERT_SCOPE = 'https://www.googleapis.com/auth/bigquery.insertdata';
public function __construct(array $config = [])
{
$this->location = $this->pluck('location', $config, false);
$this->setHttpRetryCodes([502]);
$this->setHttpRetryMessages([
'rateLimitExceeded',
'backendError'
]);
$config += [
'scopes' => self::SCOPE,
'projectIdRequired' => true,
'returnInt64AsObject' => false,
'restRetryFunction' => $this->getRetryFunction(),
//@codeCoverageIgnoreStart
'restCalcDelayFunction' => function ($attempt) {
return min(
mt_rand(0, 1000000) + (pow(2, $attempt) * 1000000),
self::MAX_DELAY_MICROSECONDS
);
}
//@codeCoverageIgnoreEnd
];
$this->connection = new Rest($this->configureAuthentication($config));
$this->mapper = new ValueMapper($config['returnInt64AsObject']);
}
我正在尝试将DataStudio报表连接到表和来自BigQuery的视图。在BigQuery中,表从位于我的驱动器中的GoogleSheet接收数据,视图正在查询同一个表,但添加了一些新字段。当我尝试将图表连接到其中一个数据源时,出现以下错误: BigQuery错误:访问被拒绝:BigQuery BigQuery:获取驱动器凭据时权限被拒绝。 原因是什么?我该怎么做才能解决这个问题? 我要说的是,
从今天起,我们的Airflow服务无法访问BigQuery中的查询。所有作业都会失败,并显示以下消息: [2021-03-12 10:17:28079]{taskinstance.py:1150}错误-原因:403获取https://bigquery.googleapis.com/bigquery/v2/projects/waipu-app-prod/queries/e62030d7-36eb-4
我希望在我遇到的这个错误代码上得到一些帮助。 语境: 我工作的公司使用GSUITE产品。 我的团队有自己的云项目设置。 谷歌硬盘不是个人硬盘。 我们使用Airflow每天/每周/每月刷新BigQuery表。 我遵循了这些解决方案 拒绝访问:获取驱动器凭据时拒绝权限 使用带有Google工作表的BigQueryAPI时出现“全局文件模式时遇到错误”错误 还引用了https://cloud.googl
我的应用程序中有一个活动,允许用户逐个从设备中选择多个文件,我正在使用这样的意图: 这工作得很好,我正在获取所选文件的Uri,它们看起来像这样: 然后,如果文件是图像,我将使用以下方式对其进行解码: 当用户单击按钮时,我通过 intent 将 Uris 列表传递给另一个活动,在此活动中,在 AsyncTask 中,我正在以 base64 编码文件以通过网络发送: 问题是,当我打开inputStre
下面是我最初的问题,但我尝试了几个查询,最后接近解决问题。 在本教程之后,我成功地从GoogleApps脚本访问了BigQuery,但当查询包含GoogleSheet链接表时,会出现“获取驱动器凭据时权限被拒绝”错误。 由于BigQuery提供了一个创建与GoogleSheet链接的表的选项,所以我在这个设置中有几个表。 没有链接表的查询可以工作,所以代码的基本设置很好,我相信凭据设置在BigQu
复制步骤: 在Google Sheets中创建工作表 启用部署管理器 我已经找到了一些这样的线索,但是它们都引用了使用“范围”来添加。我不知道如何向部署管理器请求添加作用域,也不知道作用域是如何工作的。 任何帮助都将不胜感激。