问题标签 [google-auth-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 serviceusage API 和服务帐户启用 API
我想为客户创建 GCP 的自动部署。
为此,我打开了一个页面让他们使用 google 登录,然后启用 IAM API 和 Service Usage API。
然后我创建了一个服务帐户,我想从现在开始使用它,以便按需启用其他所需的 API,而不是一次性启用。
当我尝试启用 cloudkms API 时,我得到
我尝试使用从创建服务帐户的响应中创建的服务帐户凭据 (google.auth.jwt.Credentials),并且添加了所有必需的权限。我不想将角色所有者授予服务帐户,因为我希望该帐户具有尽可能少的权限。
当我尝试使用用户权限获取 cloudkms API 的状态时,它可以工作。
我已经看到一些解决方案解决了我需要为服务帐户创建凭据的问题:https ://console.developers.google.com/apis/credentials但我也确实需要以编程方式执行此操作。
我的代码:
上面提到了错误。
ubuntu - 使用 Apache 和 Mod-WSGI 从 Flask 运行 API 时遇到问题
我正在开发一个托管在运行 Apache 的 Ubuntu 16.04 服务器上的 Flask 应用程序。该应用程序利用 Google 地球引擎 (GEE)。
GEE 默认存储令牌并从中加载令牌~/.config/earthengine/credentials
。虽然这在调用 GEE 时不会造成任何问题python -c
,但 GEE 无法从 Flask 中访问令牌,因此无法运行。
也就是说,当在我的 Flask 应用程序中调用时,GEE 会引发异常。我已经通过我的 apache 追溯了这个异常error_log
,我相信这是问题的根源:
我尝试将默认凭据文件路径稍微更改earthengine/oauth.py
为'. /.config/earthengine/credentials'
. 这样做之后,我仍然可以python -c
调用 GEE,但我对 Flask 没有运气。
我考虑过专门为在我的 Flask 应用程序的上下文中使用 GEE 制作某种文件夹,然后指向earthengine/oauth.py
它。但是,我对此非常谨慎。
在这一点上,我不知道这是一个 Flask 问题、一个 Ubuntu 问题、一个 WSGI 问题还是完全其他的问题,所以任何建议都会有所帮助。
一般来说,我觉得有两个问题应该可以帮助我更接近解决方案:(1)如何允许 oauth 脚本访问 Ubuntu 上的 ~/.config?(2) 如何正确地将 apache 指向 ~/.config 作为主目录,即我应该修改哪个 .conf 文件以尝试解决此问题?
编辑:阅读了一些 mod-wsgi 问题后,我认为这可能与WSGIPassAuthorization
. 如果是这样,我究竟应该怎么做?
更新:我已按照此处的建议更改了文件权限,并将 oauth.py 指向的文件更改为'/root/.config/earthengine/credentials'
. 好消息:我不再收到有关访问文件的错误。坏消息:我现在收到一个由表面上错误的刷新令牌导致的错误。我已经看到这种事情可能是时钟问题,但我的时钟对我来说看起来不错:
(我看的时候时钟看起来ntpd -c lpeer output
也不错。)
有鉴于此,我可能会注意到,当我earthengine authenticate
的凭据文件中的令牌值没有改变时。这似乎并没有妨碍我在本地使用 earthengine,但是在 Flask 中使用仍然是一个问题。
更新:我现在认为这是尝试在没有 Google 服务帐户的情况下拨打电话的结果。
google-cloud-platform - 使用 Cloud Build 服务帐号进行编程式身份验证
在Cloud Build执行的构建期间,我需要验证我的自定义 Java 代码以使用Google Cloud Storage API。该代码使用Cloud Storage JSON API 客户端。
我想使用 Cloud Build 服务帐户进行身份验证,但目前尚不清楚如何在 Java 代码中实现此目的而不将服务帐户密钥文件作为加密资源传递。
是否可以通过在 Cloud Build docker 容器中执行的 Java 代码对 Cloud Build 服务帐户进行身份验证?
javascript - 传入的 JSON 对象不包含 client_email 字段
我正在尝试创建一个 Firebase 云功能。所以我想在本地运行我的 firebase 云功能。但是如何设置身份验证不起作用。
我已经安装了 firebase 工具:https ://firebase.google.com/docs/functions/local-emulator
我已经运行了命令firebase login
,所以现在我已经登录了。然后我用本教程创建了我的 json 密钥:https ://cloud.google.com/docs/authentication/getting-started
现在如果我输入echo $GOOGLE_APPLICATION_CREDENTIALS
结果是/home/$USER/.google/****.json
包含
此外,我尝试安装完整的 google cloud sdk 并运行:gcloud auth application-default login
但没有成功。
Npm 包版本:
我想我已经提供了足够的信息,但如果您愿意,请随时问我。
代码并不重要,最重要的是即使我已经完成了所有这些步骤,当我在本地模拟我的firebasefirebase serve
并触发一个函数时,我有这个错误:错误:传入的JSON对象不包含client_email场地
我可以确保您的 json 文件包含 client_email 字段。
你能帮我通过谷歌进行身份验证吗?
谢谢你的帮助。
google-api-ruby-client - 尝试访问 GSuite 管理员帐户的用户会给出“401 - 需要登录”
我已经设置了一个新项目来访问我的 GSuite 帐户用户。当我运行我的代码时,它会给出 401 - '需要登录'。
我已向具有所需范围的帐户授予“域范围权限”。
我正在使用的代码是:
该项目是在我的个人谷歌开发者帐户上设置的。
任何想法为什么会发生这种情况以及我该如何解决?
node.js - 403 "Insufficient authentication scopes" with Google Sheets API and Service Account
I can't for the life of me figure out why this isn't working. I feel like I've done everything comparable to what's done in this tutorial, but it's not working.
I have done the following:
- Created a project with the Google Sheets API enabled.
- Created a Service Account under the Credentials section of my project.
- Downloaded the JSON configuration file for the Service Account.
- Saved the private key (
-----BEGIN PRIVATE KEY----....
, all on one line), the client email, and the project ID to my environment variables.
My code looks like so:
I've verified that the values are being loaded correctly from the environment variables.
This is the response I get after calling connect()
on a new instance of GoogleSheetsAPI:
Surely it's something simple. Any ideas? Thanks!
android - 如何在没有后端服务器的 Android 应用中验证 PhotosLibraryClient 的用户
以前,我正在使用该库:
com.google.apis:google-api-services-photoslibrary:v1-rev1-1.23.0
但我被告知它并不打算发布,并且它有一些错误。所以我尝试切换正确的:
com.google.photos.library:google-photos-library-client:1.4.0
但是,这有不同的身份验证流程。
基本上,所有文档和示例都涉及客户端机密的问题,以及提供访问令牌的我的服务器,这是 UserCredentials 所需的,而 UserCredentials 又用于 FixedCredentialsProvider 和 PhotosLibraryClient。
但我没有服务器 - 这是一个独立的应用程序。在开发者控制台上设置客户端 ID 时,当您仅指定应用访问权限时,它不会创建客户端密码(而是使用应用的签名)。鉴于它可以让我创建该 ID - 我认为必须有一种方法可以在没有客户端密码的情况下执行此操作。
对于另一个库,流程是:
- 使用
GoogleSignInClient.getSignInIntent()
和startActivityForResult()
确定帐户 - 假设成功,
Task<GoogleSignInAccount>
使用返回的意图创建一个onActivityResult
- 从任务中获取
GoogleSignInAccount
,然后getAccount()
从那里获取 - 为 Google Photos创建一个
GoogleAccountCredential.usingOAuth2()
传递所需范围,然后setSelectedAccount()
- 将 `PhotosLibrary.Builder() 与创建的凭据一起使用
但是对于新的,您需要使用UserCredentials
,它需要一个客户端密码(以前不需要,并且在生成 Android ID 时没有创建)和一个访问令牌。
看来我应该能够使用 获取访问令牌GoogleAuthUtil.getToken
,但稍后仍然需要客户端密码。getToken 也不起作用 - 我遇到了身份验证异常。可能是因为我的范围是错误的,但我不确定。
我还研究过使用https://github.com/erickogi/AndroidGooglePhotosApi/blob/master/app/src/main/java/ke/co/calista/googlephotos/Utils/AccessTokenFactory.kt来获取令牌,但是还需要客户端密码。
这是(成功)登录帐户并获取令牌的活动。但我无法弥合这与获得图书馆客户之间的差距。
javascript - Google Cloud Function/google-auth-library:无法读取未定义的属性“用户”
代码是:
常量备份 = functions.pubsub.topic('YOUR_TOPIC_NAME_HERE').onPublish(exportDB); module.exports = { 备份 };
当我通过以下方式进行部署时:
我得到错误:
错误: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code。错误消息:无法加载文件 index.js 中的代码。您的代码中是否存在语法错误?
详细的堆栈跟踪:TypeError:无法读取未定义的属性“用户”
这是 google-auth-library 的东西吗?
node.js - 错误:使用服务帐户创建 GCP 项目时用户未获得授权
我正在尝试使用 Google API 以编程方式创建 GCP 项目。这是示例代码:
运行此代码后,我收到以下错误:
UnhandledPromiseRejectionWarning:错误:用户未被授权。
谁能帮助我为什么会收到此错误?我该如何解决这个问题?
附言
- Google 资源管理器 API 已启用。
- 服务帐户具有 role=owner 权限。
r - 在生产脚本中设置 client_id 和 client_secret - R
在使用 googleAnalyticsR api 时,我正在使用“ga_auth(token = "my token.httr-oauth") 进行身份验证,并在我的计算机和服务器上运行脚本非常好。当我在生产模式下(使用 CRON)运行这个脚本时,我已经开始出现此错误:
我按照说明创建了自己的项目,下载了 json 文件,并在调用库(googleAnalyticsR)之前进行了设置:
gar_set_client(json = "/home/path/client_secret_XXXX-XXXXXX.apps.googleusercontent.com.json") 2019-11-05 10:41:56> 从 /home/path/client_secret_XXXX-XXXXXX.apps 设置 client.id。 googleusercontent.com.json [1] "my_analytics-export"
我相信我无法告诉 API 使用这个项目而不是通用的,因为我遇到了与开始时相同的错误。
有谁知道怎么做???这绝对不是我的事……而且我的想法已经不多了!
谢谢..