YouTube 数据 API 错误 403 权限不足
YouTube Data API Error 403 Insufficient Permission
我正在使用 Swift 开发一个 IOS 应用程序,该应用程序需要访问用户的 YouTube 订阅。在 Google Cloud Platform 上添加我需要的所有范围并在 Firebase 中实施 GoogleSignIn 之后。我登录 (GIDSignInButton),然后在发出此请求后出现如下所示的错误:
https://www.googleapis.com/youtube/v3/subscriptions?part=snippet%2CcontentDetails&mine=true&key=\(apiKey)&access_token=\(Access_Token)
.
Access_Token是我打电话后得到的:
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?){
user.authentication.accessToken
....}
我遇到的错误:
["error": {
code = 403;
errors = (
{
domain = global;
message = "Insufficient Permission";
reason = insufficientPermissions;
}
);
message = "Request had insufficient authentication scopes.";
status = "PERMISSION_DENIED";
}]
在 App Delegate 中我这样设置:
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
首先,丢弃参数key=(apiKey)
;授权仅基于 access_token=(Access_Token)
.
请注意访问令牌是 short-lived。您可以向以下地址发出 HTTPS GET
请求:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=(Access_Token)
查看您的访问令牌是否仍然有效。提供的响应将如下所示:
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
或如:
{
"issued_to": "...",
"audience": "...",
"scope": "...",
"expires_in": 3599,
"access_type": "offline"
}
然后 double-check 您已将所需的范围附加到该访问令牌,以防它有效。
我遇到了同样的问题,如果我没记错的话,它发生在我的 OAuth 同意验证状态未验证时。为了让它发挥作用,我所做的是,除了在 Google 仪表板中提供范围外,我还在登录前以编程方式添加了它们。
GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/youtube.upload")
GIDSignIn.sharedInstance().signIn()
我正在使用 Swift 开发一个 IOS 应用程序,该应用程序需要访问用户的 YouTube 订阅。在 Google Cloud Platform 上添加我需要的所有范围并在 Firebase 中实施 GoogleSignIn 之后。我登录 (GIDSignInButton),然后在发出此请求后出现如下所示的错误:
https://www.googleapis.com/youtube/v3/subscriptions?part=snippet%2CcontentDetails&mine=true&key=\(apiKey)&access_token=\(Access_Token)
.
Access_Token是我打电话后得到的:
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?){
user.authentication.accessToken
....}
我遇到的错误:
["error": {
code = 403;
errors = (
{
domain = global;
message = "Insufficient Permission";
reason = insufficientPermissions;
}
);
message = "Request had insufficient authentication scopes.";
status = "PERMISSION_DENIED";
}]
在 App Delegate 中我这样设置:
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
首先,丢弃参数key=(apiKey)
;授权仅基于 access_token=(Access_Token)
.
请注意访问令牌是 short-lived。您可以向以下地址发出 HTTPS GET
请求:
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=(Access_Token)
查看您的访问令牌是否仍然有效。提供的响应将如下所示:
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
或如:
{
"issued_to": "...",
"audience": "...",
"scope": "...",
"expires_in": 3599,
"access_type": "offline"
}
然后 double-check 您已将所需的范围附加到该访问令牌,以防它有效。
我遇到了同样的问题,如果我没记错的话,它发生在我的 OAuth 同意验证状态未验证时。为了让它发挥作用,我所做的是,除了在 Google 仪表板中提供范围外,我还在登录前以编程方式添加了它们。
GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/youtube.upload")
GIDSignIn.sharedInstance().signIn()