我用这个代码通过OAuth 2.0授权谷歌
oauthswift=OAuth2Swift(consumerKey:“984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09.apps.googleusercontent.com”,ConsumerCret:“AIzaSyD13MBv78yWIjl4TX9jOOT9AWuEkYdVSPQ”,授权URL:https://accounts.google.com/o/oauth2/v2/auth或者,accessTokenUrl:https://www.googleapis.com/oauth2/v4/token,响应类型:“代码”)
let handle = oauthswift.authorize(
withCallbackURL: URL(string: "com.googleusercontent.apps.984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09:/oauth")!,
scope: "profile", state:"GOOGLE",
success: { credential, response, parameters in
print(credential.oauthToken)
// Do your request
},
failure: { error in
print(error.localizedDescription)
print((error as OAuthSwiftError).errorUserInfo)
}
)
但结果总是失败
无法完成操作。(操作系统无线网络错误 -11。[“请求”: https://www.googleapis.com/oauth2/v4/token, “错误”: 错误域 = NSURL错误域代码 = 401 “invalid_client未经授权” 用户信息={响应正文={ “错误”: “invalid_client”,“error_description”: “未经授权” } , NSError失败URLKey.com=“内容编码” = gzip;“内容长度”= 81;“内容类型” = “应用程序/json;字符集 = UTF-8“;日期 = “星期四, 15 六月 2017 04:25:10 GMT”;到期 = “星期四, 15 六月 2017 04:25:10 GMT”;服务器 = 地面支持环境;变化=“起源,X起源”;“Www-身份验证” = “持有者领域=”https://accounts.google.com/“;“alt-svc” = “奎奇=\”:443\“;ma=2592000;v=\“38,37,36,35”“;“x-内容类型-选项” = nosniff;“x框架选项”=同一起源;“x-x-保护” = “1;模式=块“;}, OAuthSwiftError.response= { URL: https://www.googleapis.com/oauth2/v4/token } { 状态代码: 401, 标头 { “缓存控制” = “私有,最大期限 =0”;“内容编码” = gzip;“内容长度”= 81;“内容类型” = “应用程序/json;字符集 = UTF-8“;日期 = “星期四, 15 六月 2017 04:25:10 GMT”;到期 = “星期四, 15 六月 2017 04:25:10 GMT”;服务器 = 地面支持环境;变化=“起源,X起源”;“Www-身份验证” = “持有者领域=”https://accounts.google.com/“;“alt-svc” = “奎奇=\”:443\“;ma=2592000;v=\“38,37,36,35”“;“x-内容类型-选项” = nosniff;“x框架选项”=同一起源;“x-x-保护” = “1;模式=块“;} }, OAuthSwiftError.response.data=
你能纠正一下吗?
您必须删除替换为CallbackURL"com.googleusercontent.apps.984813079630-f828a92sqtl5lgumd4kgp9i30bs9og09:/oauth"
"your.bundle.id:/oauth2Callback"
来自演示 O奥特斯威夫特的评论:
对于googgle,redirect_uri应该与您的语法匹配:your.bundle.id:/oauth2Callback
在plist中,定义一个url模式:your.bundle.id
经过这些改变,我仍然有这个问题。找到解决方案:
我用空字符串删除了customerSecret,然后..它工作了。
希望以上我的回答对你有所帮助!
我正在尝试在Android设备上使用一个简单的电话差距应用程序。因此,我遵循了所有步骤,创建了一个项目,该应用程序成功地与GCM服务器通信,并使用我的项目编号获取注册ID。 问题是我不能从服务器端与GCM通信。我最初是在Perl中这样做的,但是即使是GCM文档中的curl example也返回“401”。 他们的API访问密钥被列入了白名单,我试着删除它并创建新的几次。甚至尝试使用浏览器密钥而不是
我是第一次使用谷歌API,我在尝试下载文件对象“下载Url”属性的文件时遇到问题。我当前正在使用“服务帐户”选项以及关联的服务帐户电子邮件和 P12 证书。 但是,URL返回“https://doc-08-68-docs.googleusercontent.com/docs/securesc/bteg36c1tifegg79l2ov17og25612tet/gk7kn52ahe4d0to7d6ht
我们有一个托管在GCP中的应用程序,它使用GSuite API将用户从GSuite同步到我们的应用程序,并使用服务帐户将用户从GSuite同步到我们的应用程序,反之亦然。它过去工作得很好,直到最近我们的一些客户开始面临问题。 我们开始得到 401未经授权。客户端未经授权使用此方法检索访问令牌,或者客户端未被授权使用任何请求的作用域 我们的应用程序和授予的权限列表都没有更改。以下是授予的api访问权
目前,我们正在开发一个处理谷歌日历的iPhone应用程序。需要将日历事件同步到服务器端。一切都很好。 但是对于推送通知,我们遵循这个过程 带参数 在标题中,我们正在发送 和内容类型:json 这里有人能帮我们解决这个问题吗?
我的授权码请求: 我正在用这个得到授权码。但是每当我使用此代码发送access_token请求时,我都会得到一个错误。(代码400)
我有一个具有统一访问控制的Google云存储桶,我在权限中添加了“诱惑者”。它说该对象是公共的,但当我尝试打开链接时,仍会收到此消息:“匿名调用方没有storage.objects.get access to the Google Cloud storage object”错误代码为“401”。我希望任何用户都能够访问该链接。我该怎么做?提前谢谢! 向你问好本