我在这里使用Google CLient Libraries for Objective C .. 我已经成功地授权用户并获得刷新令牌。 (使用嵌入的GTMOAuthenticaion api。)
在成功授权后调用的Selector中,我按如下方式进行获取用户配置文件请求..(我需要当前登录/验证用户的id)
-(void)viewController:(GTMOAuth2ViewControllerTouch *)viewController
finishedWithAuth:(GTMOAuth2Authentication *)auth
error:(NSError *)error {
if (error != nil) {
NSLog(@"Stop");
} else {
if ([auth canAuthorize]){
[Mediator plusService].authorizer = auth;
// Problematic Line
GTLQueryPlus *profileQuery = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"]; // Notice the UserId Param
profileQuery.completionBlock = ^(GTLServiceTicket *ticket, id object, NSError *error) {
if (error == nil) {
self.mediator.gProfile = object;
} else {
NSLog(@"GPlus Service Error %@", error);
}
};
[[Mediator plusService] executeQuery:profileQuery completionHandler:
^(GTLServiceTicket *ticket, id result, NSError *error) {
if (error)
NSLog(@"Some Service Error %@", error);
}];
}
}
}
如果我将“me”作为参数,我在jSON响应中得到无效的用户ID错误字符串。
但是,如果我提供一些userId,比如我自己的113632923069489732066,它可以正常运行并返回相应的jSON响应.. !!
示例文件夹中的Google Plus示例也无法获取当前用户个人资料,并显示以下错误。
Error Domain=com.google.GTLJSONRPCErrorDomain Code=400 "The operation couldn’t be completed. (Invalid user ID: {0})" UserInfo=0x7a670fa0 {NSLocalizedFailureReason=(Invalid user ID: {0}), GTLStructuredError=GTLErrorObject 0x7a67b130: {message:"Invalid user ID: {0}" code:400 data:[2]}, error=Invalid user ID: {0}}
P.S。我的API控制台应用程序在安装的应用程序下不适用于iOS选项,但需要使用“其他”选项进行配置。使用iOS选项配置时,oAuth失败并显示invalid_client错误响应。
答案 0 :(得分:0)
我的错误.. !!而且非常愚蠢...... !!
我正在使用尚未与GPlus相关联的Gmail帐户登录.. !! = /