我正在尝试通过IMAP连接并从Gmail检索邮件标头列表.
我收到了Google的回复,其中包含"需要Web登录",然后是一个URL,通过网络界面继续登录.记录:http://hastebin.com/odufaducew.vhdl
为什么会这样?如何处理这种情况?我正在使用适用于iOS的MailCore2 lib,如果这有帮助的话.
我们在使用适用于Google Apps市场用户的OAuth2服务帐户生成访问令牌时遇到问题.此处生成的令牌将用于访问Google API(联系人,日历,邮件,管理SDK API),因此我们服务中的所有Google集成都会失败.从太平洋标准时间3月9日太平洋标准时间开始突然失败.您能否将此视为重中之重,请告知我们问题的原因,或者我们是否遗漏了这些问题.我们正在获得API响应
{ "error": "invalid_request" }
Run Code Online (Sandbox Code Playgroud)
请查看以下示例请求以及" https://www.googleapis.com/oauth2/v4/token "(如文档中)和" https://accounts.google.com "的2个示例请求的所有标题和参数/ o/oauth2/token "端点.两者都分别导致响应{"error":"internal_failure","error_description":"Invalid Value"}和{"error":"invalid_request"}的错误消息.
PS:如果我们使用相应的Google客户端库,则服务电子邮件地址,用于在示例请求中生成以下签名的私钥文件都有效.但我们正在使用Google的REST API.我们在Google API控制台中创建了一个示例应用程序,用于测试新的服务帐户详细信息,这会导致相同的异常.
网址:
https://www.googleapis.com/oauth2/v4/token
头:
内容类型:应用/ X WWW的窗体-urlencoded
身体:
grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ ==.VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =
响应:
代码:400 {"error":"internal_failure","error_description":"无效值"}
网址:
https://accounts.google.com/o/oauth2/token
头:
内容类型:应用/ X WWW的窗体-urlencoded
身体:
grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ ==.VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =
响应:
代码:400 {"error":"invalid_request"}
编辑:文档中的示例请求.这段代码在过去的两年里为我们工作,突然间它昨天停止了工作.
POST/oauth2/v4/token HTTP/1.1主机:www.googleapis.com内容类型:application/x-www-form-urlencoded
grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU3MzM4MSwiaWF0IjoxMzI4NTY5NzgxfQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w0rxMSjwruNKbysgRNctZPln7cqQ
google-api google-apps google-authentication google-apps-marketplace service-accounts
我正在使用Firebase提供的代码进行Google身份验证,并且以某种方式,身份验证成功,但是电子邮件未正确导入到Firebase。
https://firebase.google.com/docs/auth/ios/google-signin
如您在以下屏幕截图中所见,该电子邮件为空白。当我看着调试器时,它显示为nil。
我单击了“允许在身份验证期间查看电子邮件”,但是我认为仍有一些设置未正确完成。有人可以帮我看看吗?我有兴趣使用电子邮件为每个用户创建用户名。
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if let error = error {
print(error.localizedDescription)
return
}
let authentication = user.authentication
let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken,
accessToken: authentication.accessToken)
FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
if error != nil {
print(error?.localizedDescription)
return
}
print("User logged in with Google...")
self.performSegueWithIdentifier("ToHome", sender: nil)
}
}
Run Code Online (Sandbox Code Playgroud) google-authentication ios firebase swift firebase-authentication
有没有办法通过docker run 传递我的本地google默认应用程序凭据(https://developers.google.com/identity/protocols/application-default-credentials)?
我的用例:
如果我能告诉"docker run"将主机google默认应用程序凭据传递给docker镜像,那将是很好的.
google-authentication google-cloud-platform google-cloud-sdk
这是我的代码:
var http = require('http');
var express = require('express');
var Session = require('express-session');
var google = require('googleapis');
var plus = google.plus('v1');
var OAuth2 = google.auth.OAuth2;
Run Code Online (Sandbox Code Playgroud)
这是一个错误:
Error: Cannot find module 'googleapis'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/software/Harsh Patel/test/demo_auth/server.js:4:14)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
Run Code Online (Sandbox Code Playgroud)
我试图用这些方法重新安装模块
npm install googleapis --savenpm install googleapisnpm install (将模块添加到package.json文件中)但这些方法不起作用.
我在node_modules目录中找到了googleapis模块.
我目前正在尝试使用社交媒体登录,并意识到这些登录信息的交付方式有些奇怪,这是因为我的工作场所与大多数办公室一样,将 3rd 方 cookie 作为安全策略阻止。
Google Firebase 身份验证使用 3rd 方 cookie,因此如果我尝试使用 Firebase,我将被重定向到 Google 页面(如预期)但是当我在登录后被重定向回原始网页时(并且 Firebase 尝试设置 cookie) , 我收到一条错误消息This browser is not supported or 3rd party cookies and data may be disabled.
但是,MongoDB Stitch以某种方式工作,即使禁用了 3rd 方 cookie,我也可以实际登录。我似乎真的无法理解为什么会这样,但我希望这里有人可以对此有所了解。如果有帮助,MongoDB Stitch 会要求您在 Google 控制台中将其设置https://stitch.mongodb.com为 Origin URI 和https://stitch.mongodb.com/api/client/v2.0/auth/callbackAuthorized Redirect URI - 而您必须在 MongoDB 控制台中设置自己的网站 URI,我认为这可能是不同之处?
无论如何,MongoDB Stitch 的文档严重不足(由于它仍处于公开测试阶段),所以如果可能的话,我真的很想采用 Google Firebase 的方式。
cookies google-authentication oauth-2.0 firebase-authentication mongodb-stitch
ADC(应用程序默认凭据)工作流程是否仅支持 Google Cloud API(例如,支持 Google Cloud Storage API,但不支持 Google Sheet API)?
我指的是google.auth 的默认方法- 不必在代码中存储任何私钥是一个巨大的胜利,也是有效利用 ADC(应用程序默认凭据)设置的主要好处。
GOOGLE_APPLICATION_CREDENTIALS如果我将环境变量设置为私钥文件(例如 key.json),则以下代码将有效。default这与包中步骤 1 的方法一致google.auth: 1. If the environment variable GOOGLE_APPLICATION_CREDENTIALS is set to the path of a valid service account JSON private key file, then it is loaded and returned.
import google.auth
from apiclient import discovery
credentials, project_id = google.auth.default(scopes=['https://www.googleapis.com/auth/spreadsheets'])
sheets = discovery.build('sheets', 'v4', credentials=credentials)
SPREADSHEETID = '....'
result = sheets.spreadsheets().values().get(spreadsheetId=SPREADSHEETID, range='Sheet1!A:B').execute()
print result.get('values', [])
Run Code Online (Sandbox Code Playgroud)
现在,看看该方法的第 4 步: …
python google-authentication google-compute-engine google-cloud-platform google-sheets-api
我正在尝试创建一个闪亮的应用程序,该应用程序首先使用OAuth进行授权(请参阅https://developers.google.com/identity/sign-in/web/sign-in),然后获取一个令牌,并使用来访问使用googlesheets4库的Google工作表。登录过程正常进行,这意味着我可以看到我的电子邮件(以及的其他数据googleUser.getBasicProfile()。似乎没有id_token返回。)最小示例:
app.R
library(shiny)
library(shinyjs)
library(googlesheets4)
shinyApp(
ui = fluidPage(
useShinyjs(),
tags$head(tags$script(src="https://apis.google.com/js/platform.js")),
tags$meta(name = "google-signin-scope", content = "profile email"),
tags$meta(name = "google-signin-client_id", content = "<CLIENT_ID>.apps.googleusercontent.com"),
includeScript("signin.js"),
div(id = "signin", class = "g-signin2", "data-onsuccess" = "onSignIn"),
actionButton("signout", "Sign Out", onclick="signOut();", class="btn-danger"),
with(tags, dl(dt("Email"), dd(textOutput("g.email")),
dt("Token"), dd(textOutput("g.id_token"))
)),
tableOutput("df")
),
server = function(input, output) {
output$g.email = renderText({ input$g.email }) # here my email is printed in the app
output$g.id_token = renderText({ input$g.id_token}) # no …Run Code Online (Sandbox Code Playgroud) r google-authentication google-oauth shiny google-sheets-api
我正在尝试实现“使用 Google 登录”按钮,如下所述: https: //developers.google.com/identity/gsi/web/guides/display-button
我对它的期望感到困惑data-login_uri,如下所示(取自上面链接的文档):
<div id="g_id_onload"
data-client_id="YOUR_GOOGLE_CLIENT_ID"
data-login_uri="https://your.domain/your_login_endpoint"
data-auto_prompt="false">
</div>
Run Code Online (Sandbox Code Playgroud)
我已正确配置应用程序的客户端 ID,并且可以完成 Google 弹出窗口提供的大部分登录/身份验证流程。但是,一旦弹出窗口关闭,它就会尝试POST到我指定为data-login_uri.
这让我相信我们需要一个后端端点来做......某事......但我无法找到有关此端点应该如何表现的任何文档,因此我不确定有什么要求与我的后端开发人员沟通。
我错过了什么?
authentication google-authentication google-account google-client-login google-signin
为了设置对私有 pip 存储库的密钥环身份验证,我按照设置对 Python 包存储库的身份验证 - 使用密钥环进行身份验证 中的步骤进行操作。
\n我选择使用环境变量进行身份验证。我验证它设置正确:
\nabc@def:~/PycharmProjects/ghi$ echo $GOOGLE_APPLICATION_CREDENTIALS\n/home/jkl/.googlekeys/serviceaccount.json\nRun Code Online (Sandbox Code Playgroud)\n我还使用登录我的用户gcloud auth login。\n登录的用户是对 Artifact Registry 具有写入权限的服务帐户的所有者。
不幸的是,当我尝试安装包\xef\xbc\x9a 时得到以下输出
\nabc@def:~/PycharmProjects/ghi$ pip install stringcase\nLooking in indexes: https://pypi.org/simple, https://us-west1-python.pkg.dev/mno-415182/pqr/simple/\nUser for us-west1-python.pkg.dev:\nRun Code Online (Sandbox Code Playgroud)\n我希望密钥环能够在这一步处理身份验证。对于确定此问题的原因有什么建议吗?
\ngoogle-authentication google-cloud-platform google-artifact-registry
google-api ×2
cookies ×1
firebase ×1
gmail ×1
gmail-imap ×1
google-apps ×1
google-oauth ×1
imap ×1
ios ×1
mailcore2 ×1
node.js ×1
oauth-2.0 ×1
python ×1
r ×1
shiny ×1
swift ×1