到目前为止,我发现的信息很少.
有许多stackoverflow问题没有答案,要求类似thing.
Google Api已经从Google登录更新为Google Signin API,这意味着之前我们可以找到共享code,现在他们拥有更少的信息available.
这意味着现在有些answers可能会被折旧.
还有一些answers表示无法做到这一点.
我的问题是去年似乎没有任何答案或问题,新的GoogleSignIn仅在一年多前才出现在released.
我想知道在使用GIDGoogleUser对象登录时是否可以以任何方式,形状或形式检索用户的朋友或联系人列表.理想情况下,我会返回一些关于它们的信息,但即使只是它们的名字,这也足够了.
Facebook API允许用户返回已登录应用但未登录所有用户的用户的详细信息.是否存在类似于Google所缺少的内容,或者目前没有办法使用官方API执行此 *** 作.
任何关于这是否可能的帮助都将非常有助于我计划我的应用程序中的下一步动作.
解决方法 过去几年Google Api版本的数量以及用户实际登录Google详细信息的情况很少,这个问题变得更加困难.这意味着由于缺乏需求,几乎没有文档.我终于在应用程序代码的 this快速教程的帮助下完成了它的工作.本教程很少见,因为它逐步完成整个登录过程,并覆盖了我所追求的联系人查找.我建议从完成本教程开始,但我也会在这里提供一些最重要的信息.
首先要确保您已将应用正确添加到Google控制台here.确保添加Google Api并获取您的客户ID.
其次,您需要设置Google登录.这非常简单,并且有一些很好的资源来设置它.我会推荐this Google youtube视频,但网上有很多其他资源.我不会详细说明,因为这不是问题的重点.
接下来,您需要设置登录代码.
确保已将两个委托添加到vIEwController
<GIDSignInDelegate,GIDSignInUIDelegate
并在vIEwDIDLoad中配置它:
[GIDSignIn sharedInstance].delegate = self;[GIDSignIn sharedInstance].uIDelegate = self;[GIDSignIn sharedInstance].clIEntID = @"123456789012-thisismadeup12345678901234567890.apps.Googleusercontent.com";[[GIDSignIn sharedInstance] setScopes:@[@"https://www.GoogleAPIs.com/auth/plus.login",@"https://www.GoogleAPIs.com/auth/plus.me"]];
我在其他地方找到的答案都没有让我设置我的clIEntID(来自谷歌控制台)但重要的部分是添加范围代码,没有这个你没有获得正确的联系人权限.
在此阶段,您可以检查是否所有设置都正确.加载您的应用并点击Google登录按钮,它应该加载webvIEw并要求您确认您的权限.它应该如下所示:
重要的权限是前两名.如果您只有底部两个,那么您将只能访问自己的个人资料,而不能访问朋友的个人资料.
一旦你掌握了这一点,你只需要执行正确的API调用即可返回你的朋友.对于不同的Google网站上的纯数量不同,这说起来容易做起来难.我用以下内容完成了我的:
Nsstring * urlString = [Nsstring stringWithFormat:@"https://www.GoogleAPIs.com/plus/v1/people/me/people/visible?access_token=%@",[GIDSignIn sharedInstance].currentUser.authentication.accesstoken];AFhttpRequestoperationManager * manager = [AFhttpRequestoperationManager manager];AFJsONResponseSerializer *responseSerializer = [AFJsONResponseSerializer serializerWithReadingOptions:NSJsONReadingallowFragments];manager.responseSerializer = responseSerializer;[manager GET:path parameters:params success:^(AFhttpRequestoperation * operation,ID responSEObject) { if (![responSEObject isEqual: [NSNull null]]) { if(responSEObject[@"error"]) { NSError * error = [NSError errorWithDomain:@"" code:0 userInfo:@{NSLocalizedDescriptionKey: responSEObject[@"error"]}]; } else { // We Now have our response object } } else { // response is nil }} failure:^(AFhttpRequestoperation *operation,NSError *error) { // Failure}];
您需要将AFNetworking添加到项目中,这是我的项目的自定义功能,因此可能无法复制过去.
这虽然应该返回您可以使用的所有联系人的字典.
总结以上是内存溢出为你收集整理的在iOS上使用API获取Google联系人全部内容,希望文章能够帮你解决在iOS上使用API获取Google联系人所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)