Google适合授权:AUTH_DENIED授权已取消
Google Fit Authorization : AUTH_DENIED Authorization cancelled
我需要有关授权的即时帮助。
我无法授权 Google Fit。 我在我的控制台中收到 AUTH_DENIED 授权已取消。这是我一步一步做的。我要为它发疯了。
这是我尝试授权的功能:
const onCheckGoogleFit = () => {
const options = {
scopes: [
Scopes.FITNESS_ACTIVITY_READ,
Scopes.FITNESS_ACTIVITY_WRITE,
Scopes.FITNESS_BODY_READ,
Scopes.FITNESS_BODY_WRITE,
],
};
GoogleFit.authorize(options)
.then((authResult) => {
if (authResult.success) {
console.log("AUTH_SUCCESS", authResult);
} else {
console.log("AUTH_DENIED", authResult.message);
}
})
.catch(() => {
console.log("AUTH_ERROR");
});
};
我完成了本文档中的所有步骤:
要获取 SHA-1 密钥,我 运行 在我的 RN 项目目录中执行此命令 myProject/android/app :
keytool -list -v -keystore ./debug.keystore -alias androiddebugkey -storepass android -keypass android
输出:
Alias name: androiddebugkey
Creation date: May 18, 2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=...
Issuer: CN=...
Serial number: ...
Valid from: Tue May 18 11:29:52 TRT 2021 until: Sat Oct 03 11:29:52 TRT 2048
Certificate fingerprints:
SHA1: [I got the key here.]
SHA256: ...
Signature algorithm name: ...
然后在console.cloud.google.com:
- 我启用了 Google 健身 API
- 我为 OAuth2(选定的用户数据)创建了新凭据。
- 跳过的范围(可选)
- 申请Type:Android
- 从 AndroidManifest.xml 文件创建的包名称。 (com.example)
- 粘贴的 SHA-1 密钥取自
RNProject/android/app/debug.keystore(如上面的输出)
- 成功获取客户端ID。
我的 RNProject/android/build.gradle 我有这个:
ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
}
我添加了这个:
maven {
url 'https://maven.google.com'
}
我的RNProject/android/app/build.gradle
dependencies{
// for google-fit
implementation 'com.google.android.gms:play-services-fitness:20.0.0'
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation "com.google.android.gms:play-services-base:+"
}
所以我找到了解决方案。我的步骤是对的。我只是按照 2 个步骤解决了问题。
我将包名称更改为 (com.example.app),就像 defaultConfig(applicationId)
中的 android/app/build.gradle
一样。我第一次将它用作 (com.example) 就像在 AndroidManifest.xml
文件中一样。
我在 console.cloud.google.com
中将我的 google 帐户添加为测试用户
一切都很完美:)
在我的场景中,我丢失了 keystore.jks 密钥。我创建了一个新的 keystore.jks 并发布了一个新版本到 Play 商店。那就是我遇到这个问题的地方。我不得不重做 console.cloud.google.com 上的步骤并粘贴新的 SHA-1 密钥并获得一个 clientID。然后工作正常的东西。
我需要有关授权的即时帮助。
我无法授权 Google Fit。 我在我的控制台中收到 AUTH_DENIED 授权已取消。这是我一步一步做的。我要为它发疯了。
这是我尝试授权的功能:
const onCheckGoogleFit = () => {
const options = {
scopes: [
Scopes.FITNESS_ACTIVITY_READ,
Scopes.FITNESS_ACTIVITY_WRITE,
Scopes.FITNESS_BODY_READ,
Scopes.FITNESS_BODY_WRITE,
],
};
GoogleFit.authorize(options)
.then((authResult) => {
if (authResult.success) {
console.log("AUTH_SUCCESS", authResult);
} else {
console.log("AUTH_DENIED", authResult.message);
}
})
.catch(() => {
console.log("AUTH_ERROR");
});
};
我完成了本文档中的所有步骤:
要获取 SHA-1 密钥,我 运行 在我的 RN 项目目录中执行此命令 myProject/android/app :
keytool -list -v -keystore ./debug.keystore -alias androiddebugkey -storepass android -keypass android
输出:
Alias name: androiddebugkey
Creation date: May 18, 2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=...
Issuer: CN=...
Serial number: ...
Valid from: Tue May 18 11:29:52 TRT 2021 until: Sat Oct 03 11:29:52 TRT 2048
Certificate fingerprints:
SHA1: [I got the key here.]
SHA256: ...
Signature algorithm name: ...
然后在console.cloud.google.com:
- 我启用了 Google 健身 API
- 我为 OAuth2(选定的用户数据)创建了新凭据。
- 跳过的范围(可选)
- 申请Type:Android
- 从 AndroidManifest.xml 文件创建的包名称。 (com.example)
- 粘贴的 SHA-1 密钥取自 RNProject/android/app/debug.keystore(如上面的输出)
- 成功获取客户端ID。
我的 RNProject/android/build.gradle 我有这个:
ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
}
我添加了这个:
maven {
url 'https://maven.google.com'
}
我的RNProject/android/app/build.gradle
dependencies{
// for google-fit
implementation 'com.google.android.gms:play-services-fitness:20.0.0'
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation "com.google.android.gms:play-services-base:+"
}
所以我找到了解决方案。我的步骤是对的。我只是按照 2 个步骤解决了问题。
我将包名称更改为 (com.example.app),就像
defaultConfig(applicationId)
中的android/app/build.gradle
一样。我第一次将它用作 (com.example) 就像在AndroidManifest.xml
文件中一样。我在 console.cloud.google.com
中将我的 google 帐户添加为测试用户
一切都很完美:)
在我的场景中,我丢失了 keystore.jks 密钥。我创建了一个新的 keystore.jks 并发布了一个新版本到 Play 商店。那就是我遇到这个问题的地方。我不得不重做 console.cloud.google.com 上的步骤并粘贴新的 SHA-1 密钥并获得一个 clientID。然后工作正常的东西。