使用 Objective C Google Plus Client Library 获取当前用户配置文件



我正在使用此处提供的用于Objective C的Google CLient库。我已经成功地授权用户并获得刷新令牌。(使用嵌入其中的GTMOAuthenticaion api)。

在成功授权后调用的选择器中,我发出获取用户配置文件请求,如下所示。(我需要当前登录/经过身份验证的用户的 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错误字符串。

但是,如果我提供一些像我自己的 113632923069489732066 userId,它工作得很好并返回适当的 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}}

附言我的API控制台应用程序不适用于已安装应用程序下的iOS选项,但需要使用"其他"选项进行配置。使用 iOS 选项配置时,oAuth 失败并显示invalid_client错误响应。

我的错误.. !!而且一个非常愚蠢的..!!

我正在使用尚未与GPlus关联的Gmail帐户登录.. !! =/

最新更新