我在尝试在OAuth 2.0中使用Youtube API时收到401无效凭据错误。
我使用谷歌登录 sdk 并使用参数获取access_token:
GIDSignIn *sharedSignIn = [GIDSignIn sharedInstance];
sharedSignIn.shouldFetchBasicProfile = NO;
sharedSignIn.scopes = [NSArray arrayWithObjects:
@"https://www.googleapis.com/auth/youtube.force-ssl",
@"https://www.googleapis.com/auth/youtube",
@"https://www.googleapis.com/auth/youtube.readonly",
// @"https://www.googleapis.com/auth/youtube.upload",
nil];
[sharedSignIn signIn];
比我使用 AFNetworking 库进行 GET 请求
- (void) getInformationWithParams: (NSDictionary *) params
method: (NSString *) method
onSuccess: (void(^)(NSDictionary *responseObject)) success
onFailure: (void (^) (NSError *error)) failure {
[self.requestOperationManager GET:method
parameters:params
progress:nil
success:^(NSURLSessionDataTask * _Nonnull task, NSDictionary *responseObject) {
NSLog(@"%@", responseObject);
if (success) {
success(responseObject);
}
}
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"getInformationWithParams Error: %@", error);
if (failure) {
failure(error);
}
}];
}
以前我做了基本网址初始化
NSURL *baseURL = [NSURL URLWithString:@"https://www.googleapis.com/youtube/v3"];
self.requestOperationManager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
最后我得到了请求
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
@"snippet", @"part",
@"true", @"home",
myApiKey, @"key",
myAccessToken, @"access_token",
nil];
[[SMServerManager sharedManager] getInformationWithParams:params
method:@"activities"
onSuccess:^(NSDictionary *responseObject) {
}
onFailure:^(NSError *error) {
}];
我不明白我做错了什么。
PS:如果请求不需要使用acces_token,则有效。
这是一个
非常愚蠢的错误。我对几个谷歌帐户感到困惑,并为项目制作了错误的文件。