广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >vue调用谷歌授权登录获取用户通讯录的实现示例
  • 105
分享到

vue调用谷歌授权登录获取用户通讯录的实现示例

2024-04-02 19:04:59 105人浏览 独家记忆
摘要

调用谷歌授权,获取用户通讯录信息 业务背景 业务端要求,用户本人填写信息,推荐到朋友,要求可以导出用户谷歌邮箱的通讯录,让用户选择,并且回显到页面 ##步骤在谷歌开发者平台 , 创建

调用谷歌授权,获取用户通讯录信息

业务背景

  • 业务端要求,用户本人填写信息,推荐到朋友,要求可以导出用户谷歌邮箱的通讯录,让用户选择,并且回显到页面 ##步骤
  • 在谷歌开发者平台 , 创建一个项目,我的理解是,我们的页面就是这个项目,要由我们的项目,对谷歌发起授权请求,就类似微信小程序,向官方发起授权,请求昵称和头像的这个场景,所以,后面我们的这个项目也要通过谷歌的审核。
  • 来到api服务

  • 这时候就到了我们这个项目的管理后台
  • 然后要创建一个用户凭据,拿到我们项目的id和key

  • 配置下面的域名,也就是让谷歌知道,用户从哪个域名发起请求事合理的,可以用本地localhost进行测试。不能用局域网IP
  • 然后在API库中,选择我们要用的API,我的需求是获取通讯录,所以我启用了people API
  • 在API库里,都会有用法和说明,我是自己去他的git上拉取的,看了下代码流程,然后自己改动,git上的代码很简洁
  • OAuth 同意屏幕 就是我们的应用在授权时,会跳出如下的界面

  • 我的理解就是这个屏幕就是同意屏幕,如果我们的应用没通过谷歌的验证,他就会提示我们的应用不安全
  • 要想通过,这边有流程官方介绍

  • 我开发的时候,只是发布到正式了,没通过就是了。在开发环境没问题。
  • 然后就能拿到数据了。 全部的代码
   // 初始化谷歌授权登录
    initClient() {
      // Client ID and API key from the Developer Console
      let CLIENT_ID =
          '你申请的ID',
        API_KEY = '你申请的密码',
        // Array of API discovery doc URLs for APIs used by the quickstart
        DISCOVERY_DOCS = [
          'https://www.Googleapis.com/discovery/v1/apis/people/v1/rest',
        ],
        // Authorization scopes required by the API; multiple scopes can be
        // included, separated by spaces.
        SCOPES = 'Https://www.googleapis.com/auth/contacts.readonly',
        authorizeButton = document.getElementById('authorize_button'),
        that = this
      gapi.client
        .init({
          // apiKey: API_KEY,
          clientId: CLIENT_ID,
          discoveryDocs: DISCOVERY_DOCS,
          scope: SCOPES,
        })
        .then(
          function () {
            console.log('谷歌登录初始化成功')
            // Listen for sign-in state changes.
            gapi.auth2
              .getAuthInstance()
              .isSignedIn.listen(that.updateSigninStatus)

            // Handle the initial sign-in state.
            // that.updateSigninStatus(
            //   gapi.auth2.getAuthInstance().isSignedIn.get()
            // )
            authorizeButton.onclick = that.handleAuthClick
          },
          function (error) {
            console.log(error)
            // appendPre(JSON.stringify(error, null, 2))
          }
        )
    },
    
    updateSigninStatus(isSignedIn) {
      // 是否登录
      if (isSignedIn) {
        console.log('已登录')
        this.listConnectionNames()
      } else {
        console.log('未登录')
      }
    },
    
    handleAuthClick() {
      // 是否登录
      let flag = gapi.auth2.getAuthInstance().isSignedIn.get()
      if (flag) {
        // 如果已经登录,就直接弹出窗口
        this.listConnectionNames()
      } else {
        // 未登录就调用出登录授权
        gapi.auth2.getAuthInstance().signIn()
      }
    },
    
    handleSignoutClick(event) {
      gapi.auth2.getAuthInstance().signOut()
    },
    listConnectionNames() {
      let peopleMsg = [],
        that = this
      gapi.client.people.people.connections
        .list({
          resourceName: 'people/me',
          pageSize: 100,
          personFields: 'names,emailAddresses',
        })
        .then(function (response) {
          var connections = response.result.connections

          if (connections.length > 0) {
            for (let i = 0; i < connections.length; i++) {
              var person = connections[i]
              if (person.names && person.emailAddresses) {
                let obj = {
                  name: person.names[0].displayName,
                  email: person.emailAddresses[0].value,
                  id: i,
                }
                peopleMsg.push(obj)
              }
            }
          } else {
            that.$message({
              message: 'No connections found.',
              type: 'warning',
            })
          }

          that.peopleMsg = peopleMsg

          that.popDialog(peopleMsg)
        })
        .catch((err) => {
          console.log(err)
        })
    },
    
    
    // 在mounted的时候初始化一下窗口
    
     mounted() {
     // 谷歌登录授权初始化
        gapi.load('client:auth2', that.initClient)
     },

到此这篇关于Vue调用谷歌授权登录获取用户通讯录的实现示例的文章就介绍到这了,更多相关vue谷歌授权登录获取通讯录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue调用谷歌授权登录获取用户通讯录的实现示例

本文链接: https://www.lsjlt.com/news/34257.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue调用谷歌授权登录获取用户通讯录的实现示例
    调用谷歌授权,获取用户通讯录信息 业务背景 业务端要求,用户本人填写信息,推荐到朋友,要求可以导出用户谷歌邮箱的通讯录,让用户选择,并且回显到页面 ##步骤在谷歌开发者平台 , 创建...
    99+
    2022-09-27
  • vue怎么调用谷歌授权登录获取用户通讯录
    这篇文章主要讲解了“vue怎么调用谷歌授权登录获取用户通讯录”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么调用谷歌授权登录获取用户通讯录”吧!调用谷歌授权,获取用户通讯录信息业务背...
    99+
    2023-07-02
  • 微信小程序实现授权登录之获取用户信息
    本文实例为大家分享了微信小程序实现获取用户信息的具体代码,供大家参考,具体内容如下 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内...
    99+
    2022-11-13
  • 微信小程序实现授权登录之怎么获取用户信息
    这篇文章主要讲解了“微信小程序实现授权登录之怎么获取用户信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序实现授权登录之怎么获取用户信息”吧!小程序登录小程序可以通过微信官方提供的...
    99+
    2023-06-30
  • Android实现第三方授权登录、分享以及获取用户资料
    由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo。实现起来的效果还是不错的,不敢独享,决定写一个总...
    99+
    2022-06-06
    授权 Android
  • ubuntu18.04获取root权限并用root用户登录的实现
    写在前面:以下步骤中需要在终端输入命令,电脑端查看博客的朋友可以直接复制粘贴到终端,手机端查看的朋友请注意命令里面的空格是必须的,否则运行会出错。 1.为root设置初始密码 (1)登录系统,打开终端,输入命令: s...
    99+
    2022-06-04
    ubuntu18.04获取root权限 ubuntu18.04 root权限
  • Android跳转到通讯录获取用户名称和手机号码的实现思路
    效果图如下所示: 先给大家说下实现android 跳转到通讯录的实现思路: 1.点击跳转到通讯录界面 2.获取通讯录姓名和手机号码 3.回调显示姓名和手机号码 1首先是跳转到...
    99+
    2022-06-06
    用户名 手机 Android
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作