我正在编写一个将使用Youtube API创建和修改用户播放列表的应用程序,我已经配置了GCP端,并且在我的代码中,我正在使用google_sign_in包来验证用户身份,但是要使用此API我需要的功能,我需要一些敏感的范围(youtube.force-ssl,youtube和youtube.readonly)。在Google上配置的所有内容。但是我无法在该应用上进行身份验证,当我启动登录提示时,它会询问我google用户,此后,它将永远加载并且不显示授予权限的屏幕。有什么事吗我做对了还是错过了什么?
这是我的登录代码:
import 'package:google_sign_in/google_sign_in.dart';
import 'package:http/http.dart' show BaseRequest, Response, StreamedResponse;
import 'package:http/io_client.dart' show IOClient;
class GoogleHttpClient extends IOClient {
Map<String, String> _headers;
GoogleHttpClient(this._headers) : super();
@override
Future<StreamedResponse> send(BaseRequest request) =>
super.send(request..headers.addAll(_headers));
@override
Future<Response> head(Object url, {Map<String, String> headers}) =>
super.head(url, headers: headers..addAll(_headers));
}
GoogleSignIn _googleSignIn = GoogleSignIn(
scopes: [
'https://www.googleapis.com/auth/youtube',
'https://www.googleapis.com/auth/youtube.force-ssl',
'https://www.googleapis.com/auth/youtube.readonly',
],
);
var _authHeaders;
var _httpClient;
Future<void> signIn() async {
try {
await _googleSignIn.signIn();
_authHeaders = _googleSignIn.currentUser.authHeaders;
_httpClient = GoogleHttpClient(_authHeaders);
} catch (error) {
print(error);
}
}
函数signIn()
由一个按钮调用。
这是登录提示,我可以选择我的帐户
但是在它永远保持这种状态之后……