首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过Google Contacts API拉取Gmail的"其他联系人"群组

通过Google Contacts API拉取Gmail的"其他联系人"群组,可以使用Google提供的API来实现。以下是一个简单的步骤说明:

  1. 首先,需要在Google Cloud Console中创建一个项目,并启用Google Contacts API。
  2. 然后,需要在Google Cloud Console中创建一个OAuth 2.0客户端ID,以便用户可以授权访问其Google联系人数据。
  3. 接下来,需要使用Google提供的SDK或API库来编写代码,以实现对Google Contacts API的调用。
  4. 在代码中,需要使用Google提供的OAuth 2.0认证流程,以获取用户的访问令牌。
  5. 使用访问令牌,可以调用Google Contacts API来获取用户的联系人列表,包括"其他联系人"群组。
  6. 最后,可以使用Google提供的API返回的数据,进行进一步的处理和分析。

以下是一个简单的Python代码示例,使用Google Contacts API来获取用户的联系人列表:

代码语言:python
代码运行次数:0
复制
from google.oauth2 import service_account
from googleapiclient.discovery import build

# Replace with your service account key file
SERVICE_ACCOUNT_FILE = 'path/to/your/service_account_key.json'

# Replace with your Google Contacts API scope
SCOPES = ['https://www.googleapis.com/auth/contacts.readonly']

# Replace with your Google Contacts API user email
USER_EMAIL = 'user@example.com'

# Authenticate using service account
credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
delegated_credentials = credentials.with_subject(USER_EMAIL)

# Build Google Contacts API client
service = build('people', 'v1', credentials=delegated_credentials)

# Get "Other Contacts" group
other_contacts_group = None
response = service.people().connections().list(
    resourceName='people/me',
    pageSize=1000,
    personFields='names,emailAddresses,phoneNumbers'
).execute()
connections = response.get('connections', [])
for person in connections:
    names = person.get('names', [])
    if names and names[0].get('displayName') == 'Other Contacts':
        other_contacts_group = person
        break

# Print "Other Contacts" group
if other_contacts_group:
    print('Other Contacts group:')
    names = other_contacts_group.get('names', [])
    if names:
        print('  Name: {}'.format(names[0].get('displayName')))
    email_addresses = other_contacts_group.get('emailAddresses', [])
    for email_address in email_addresses:
        print('  Email: {}'.format(email_address.get('value')))
    phone_numbers = other_contacts_group.get('phoneNumbers', [])
    for phone_number in phone_numbers:
        print('  Phone: {}'.format(phone_number.get('value')))
else:
    print('No "Other Contacts" group found.')

需要注意的是,以上代码示例仅供参考,实际使用时需要根据具体情况进行修改和调整。同时,需要注意保护用户数据的隐私和安全,遵守相关法律法规和政策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

谷歌宣布封停Google+,50万用户信息泄露

解决方案3:限制允许用例类型。 针对消费者Gmail API用户数据政策正在进行更新,以限制可能获得访问消费者Gmail数据权限应用。...此外,这些应用需要同意有关处理Gmail数据新规则,并且需要接受安全评估。 问题发现4:当用户向Android应用程序授予SMS、联系人和电话权限时,他们会考虑到特定用例。...解决方案4:我们限制了应用程序在Android设备上接收通话记录和短信权限,不再通过Android Contacts API提供联系人交互数据。...此外,作为Android Contacts权限一部分,谷歌提供了基本交互数据 - 例如,消息应用可以向用户显示最近联系人。...在未来几个月内将删除对Android Contacts API联系人互动数据访问权限。

82940

同源策略与JSONP

如果Web API仅限于为“同源客户端”提供资源,那么它都对不起自己名字,因为Web本身是一个开放协议。那么ASP.NET Web API通过怎样方式来实现跨域资源共享呢?...我们目的在于:当页面成功加载之后以Ajax请求形式调用上面定义Web API获取联系人列表,并将自呈现在页面上。...如果我们采用Fiddler来监测页面加载过程中发送请求和接收到响应,我们会发现针对Web API调用Ajax请求被成功发送,并且以JSON格式表示联系人列表会被成功接收,请求和响应内容如下所示...对于上面我们演示实例来说,如果我们按照如下方式来定义View:联系人列表呈现单独定义在listContacts函数中(参数contacts表示联系人列表),并将Web API地址置于<script...如果现在运行我们程序,通过“跨域”(其实不是)调用Web API得到联系人列表就会按照如右图所示效果呈现出来。

1.1K100
  • 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    WebApp:这是一个空ASP.NET Web应用,代表“联系人管理器”网页就存在于该项目之中,至于具体联系人管理功能,自然通过以Ajax形式调用Web API来完成。.../api/contacts/001”,则可以得到ID为“001”联系人信息,右图证实了这一点。...我们最后调用HttpClientDeleteAsync方法向地址“http://localhost/selfhost/api/contacts/002”发送一个DELETE请求以删除ID为“002”联系人通过输出当前所有联系人列表来证实删除参数是否成功完成...在本例中,我们主要利用jQuery来实现以Ajax方式调用Web API,同时它也是其他两个框架(Bootstrap和KnockOut)基础框架。...对话框弹出通过调用表示对话框modal方法实现,该方法是由Bootstrap提供。 save:发送Ajax请求调用Web API以添加新联系人或者修改现有某个联系人信息。

    4.6K110

    ASP.NET Core 6框架揭秘实例演示:跨域资源共享(CORS)N种用法

    (本文提供示例演示已经同步到《ASP.NET Core 6框架揭秘-实例演示版》) [S2901]跨域调用API 为了方便在本机环境下模拟跨域API调用,我们通过修改Host文件将本地IP映射为多个不同域名...我们将API定义在Api项目中,App是一个JavaScript应用程序,它会在浏览器环境下以跨域请求方式调用承载于Api应用中API。...图1 演示实例解决方案结构 如下所示Api程序中定义了表示联系人Contact记录类型。我们注册了针对路径“/contacts路由使之以JSON形式返回一组联系人列表。...我们通过注册针对根路径路由使之现一个包含联系人列表Web页面,我们在该页面中采用jQuery以AJAX方式调用上面这个API获取呈现联系人列表。...我们将AJAX请求目标地址设置为“http://www.qux.com:8080/contacts”。在AJAX请求回调操作中,可以将返回联系人以无序列表形式呈现出来。

    37120

    通过ASP.NET Web API + JQuery创建一个简单Web应用

    这是一个只涉及到简单CRUD操作Web应用,业务逻辑以Web API形式定义并以服务形式发布出来,前台通过jQuery处理用户交互并调用后台服务。...[源代码从这里下载] 目录 一、一个简单基于CRUD 二、通过ASP.NET Web API提供服务 三、通过JQuery消费服务 一、一个简单基于CRUD...当页面加载时候,所有的联系人列表被列出来。在同一个页面中,我们可以添加一个新联系人,也可以修改和删除现有联系人信息。整个应用唯一页面在浏览器中呈现效果如下图所示。 ?...二、通过ASP.NET Web API提供服务 我们来简单介绍作为Web API形式发布联系人管理服务定义,先来看看用于表示联系人Contact类型定义。...Action方法名称与HTTP方法默认影射机制,我们可以直接在浏览器中分别访问地址“/api/contact”和“/api/contact/001”得到所有联系人列表和ID为“001”联系人信息。

    860100

    业界 | 谷歌版“剑桥分析事件”上演,华尔街日报发文谴责,谷歌长文回应

    需要强调是,作为我们Project Strobe审核一部分,我们在其中一个Google+ People API中发现了一个错误: 用户可以通过APIGoogle+应用授予对其个人资料数据及其朋友公开个人资料信息访问权限...行动3:我们开始限制允许用例类型。 我们正在更新针对消费者版本Gmail API用户数据政策,以限制可能获得访问消费者版Gmail数据权限应用。...措施 4:我们会对应用程序获取 Android 设备上通话记录和短信记录权限做一些限制,并且不再允许通过 Android Contacts API 获取到通话交互数据。...此外,作为 Android 联系人(Android Contacts)权限机制一部分,我们此前提供了基本交互访问数据功能 —— 比如,一个短信应用可以获取并显示最近联系人记录。...未来几个月内,我们将会从 Android Contacts API 中移除这个对通话记录数据访问权限。

    1.1K50

    通过Knockout.js + ASP.NET Web API构建一个简单CRUD应用

    一、一个简单基于CRUDWeb应用 在《通过ASP.NET Web API + JQuery创建一个简单Web应用》中,我采用jQuery + ASP.NET Web API构建了一个单纯对单一数据进行...现在我们通过Knockout.js来进行数据绑定,你会发现我们代码会变得很优雅。 这个简单Demo应用用于模拟“联系人管理”。当页面加载时候,所有的联系人列表被列出来。...二、通过ASP.NET Web API提供服务 先来看看ApiController定义。...Action方法名称与HTTP方法默认影射机制,我们可以直接在浏览器中分别访问地址“/api/contacts”和“/api/contacts/001”得到所有联系人列表和ID为“001”联系人信息...我们采用jQuery进行Ajax调用ApiController进行联系人获取、添加、修改和删除,数据和命令(添加、修改和删除)绑定是通过Knockout.js来完成。 1: <!

    1.2K90

    ASP.NET Web API自身对CORS支持:从实例开始

    在《通过扩展让ASP.NET Web API支持W3CCORS规范》中我们通过自定义HttpMessageHandler为ASP.NET Web API赋予了跨域资源共享能力,具体来讲,这个自定义...我们依然沿用上面这个通过跨域Ajax请求获取联系人列表这个例子,我们右键选种WebApi项目并在上下文菜单中选择“管理NuGet包(Manage NuGet Package)”,在弹出的如左图所示对话框中...1: GET http://localhost:3721/api/contacts?...":wangwu@gmail.com}]) 和在《通过扩展让ASP.NET Web API支持W3CCORS规范》实现CORS实例一样,ASP.NET Web API自身也是借助于应用在HttpController...我们目的在于:当页面成功加载之后以Ajax请求形式调用上面定义Web API获取联系人列表,并将自呈现在页面上。

    1.6K120

    IoC在ASP.NET Web API应用

    通过IoC方式实现针对目标HttpController激活具有重要意义。[本文已经同步到《How ASP.NET Web API Works?》]...通过《ASP.NET Web APIController是如何被创建?》...我们通过一个简单实例来演示如何通过自定义HttpControllerActivator方式实现与IoC集成,我们采用IoC框架是Unity。...应用运行之后,我们可以直接在浏览器中输入相应地址获取所有联系人列表(“/api/contacts”)和针对某个ID为“001”(“/api/contacts/001”)联系人信息,相应联系人信息会以如下图所示形式出现在浏览器上...运行此ASP.NET Web API应用后通过浏览器试图获取联系人信息,我们依然会得到如上图所示结果。

    1.7K60

    通过扩展让ASP.NET Web API支持W3CCORS规范

    让ASP.NET Web API支持JSONP和W3CCORS规范是解决“跨域资源共享”两种途径,在《通过扩展让ASP.NET Web API支持JSONP》中我们实现了前者,并且在《W3CCORS...Specification》一文中我们对W3CCORS规范进行了详细介绍,现在我们通过一个具体实例来演示如何利用ASP.NET Web API具有的扩展点来实现针对CORS支持。...我们目的在于:当页面成功加载之后以Ajax请求形式调用上面定义Web API获取联系人列表,并将自呈现在页面上。...":wangwu@gmail.com}] 五、CorsMessageHandler针对Preflight Request授权检验 从上面给出请求和响应内容可以确定Web API调用采用是“简单跨域资源请求...":wangwu@gmail.com}] CORS系列文章 [1] 同源策略与JSONP [2] 利用扩展让ASP.NET Web API支持JSONP [3] W3CCORS规范 [4] 利用扩展让

    2.4K90

    Recon-ng 信息收集框架

    最终只找到了google搜索引擎api其他初来乍到实在不知道如何进行获取 以后如果获取到了我就去试一试吧 query query允许我们使用sql语句对数据库进行查询 不过现在我们还没有查询什么,...公司到综合信息 contacts-contacts 联系人联系人 contacts-credentials 联系人到凭证信息 contacts-domains 联系人到域名 contacts-profiles...联系人到注册配置文件 credentials-credentials 凭证到凭证 domains-contacts 域名到联系人 domains-credentials...公司 – 联系人 这项是不行了,我们没有那几个api 公司 – 综合信息 ?...可以看到搜索到mail.hasee.com 这个记录 由于我们不确定www.hasee.comIP地址,所以就不进行其他shodan查询了 我们来到google这里 ?

    71850

    利用动态注入HTML方式来设计复杂页面

    这个“单页面应用”是通过ASP.NET MVC开发,接下来我们来逐步介绍如果将同一页面中这三块不同内容提取出来进行“分而治之”。...简单起见,我们通过一个静态字段来表示维护联系人列表。我们仅仅列出了默认Action方法Index,它会直接将作为“容器页面”View呈现出来。... 45: 46: } 联系人编译窗口弹出最终通过调用...通过ContactPartial.cshtml定义可以看出编辑联系人表单最终以POST方式提交到HomeControllerAction方法Update(@using(Ajax.BeginForm...return "OK"; 10: } 11: } 联系人修改表单提交后关闭当前窗口并加载新数据通过具有如下定义JavaScript函数Reload实现(@using

    3.5K20

    Android权限机制,你真的了解吗?

    API接口:AppOpsManager AppOpsService实现了大部分核心功能逻辑,但它不能被其他模块直接调用访问,而是通过AppOpsManager提供访问接口。...2.5.5 相关API接口 尽管在Android SDK里能够看到部分AppOpsAPI接口,但是Google对此解释很清楚: This API is not generally intended...即是说,这些API不是让第三方app使用,而是供系统应用调用。 使用Android SDK开发应用,如果要调用这些API的话,也会编译不通过。...敏感权限则要获取到一些用户私密信息。如果你应用需要获取敏感权限,首先需要获取用户授权。比如:相机CAMERA、联系人CONTACTS、存储设备STORAGE。...(这里可能比较绕,举个例子:假设你APP需要联系人和拍照权限,在请求权限时用户只授予了联系人权限,那么当前程序可以正常运行并获取联系人信息,但是无法进行拍照) 注:本篇文章讲解如何在API level

    6.4K100

    安卓 training-使用系统权限

    但如果您应用使用一个 intent 从用户联系人”应用中请求信息,则您应用不需要任何权限,但“联系人”应用确实需要该权限。如需了解详细信息,请参阅考虑使用 intent。...如果您列出了危险权限,则用户必须明确批准您应用使用这些权限。 注:从 Android 6.0(API 级别 23)开始,用户可以随时从任意应用调用权限,即使应用面向较低 API 级别也可以调用。...例如,如果您请求 READ_CONTACTS 权限,系统对话框只显示您应用需要访问设备联系人。用户只需要为每个权限组授予一次权限。...如果您应用请求该组中任何其他权限(已在您应用清单中列出),系统将自动授予应用这些权限。...根据您使用权限方式,您可以通过其他方式执行您需要操作(系统 intent、标识符、电话后台处理),无需依赖敏感信息访问权限。 请注意库所需权限。添加某个库时,您也会继承它权限要求。

    1.8K10

    如何解决jQuery Validation针对动态添加表单无法工作问题?

    为了充分利用ASP.NET MVC在服务端呈现HTML能力,在《利用动态注入HTML方式来设计复杂页面》一文中介绍了,通过Ajax调用获取HTML来呈现复杂页面中某一部分界面的解决方案。...我们知道ASP.NET MVC默认集成了jQuery Validation,但是对于通过JavaScript动态添加表单,客户端验证默认情况下是失效。...还是以前文涉及联系人管理”为例,在一个ASP.NET MVC应用中定义了如下两个类型,Contact封装联系人信息,HomeController包含三个Action,除了默认Index外,两个Update...方法用于修改指定联系人信息。...(Index.cshtml)具有如下定义,页面主体内容是在加载时候通过Ajax方法访问Action方法Update获取

    2K90

    Android6.0权限大全和权限分类

    ,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问权限 验证账户 android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理...读取联系人 android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息 屏幕截图 android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图...android.permission.WRITE_CONTACTS,写入联系人,但不可读取 写入外部存储 android.permission.WRITE_EXTERNAL_STORAGE,允许程序写入外部存储...,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问权限 验证账户 android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理...读取联系人 android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息 屏幕截图 android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图

    1.8K30
    领券