成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vue調(diào)用谷歌授權(quán)登錄獲取用戶通訊錄的實現(xiàn)示例

3403771864 / 636人閱讀

  vue調(diào)用用在很多場景,今天為大家介紹如何用谷歌授權(quán)登錄獲取用戶通訊錄

  當前背景

  業(yè)務端要求,用戶本人填寫信息,推薦到朋友,要求可以導出用戶谷歌郵箱的通訊錄,讓用戶選擇,并且回顯到頁面 ##步驟

  在谷歌開發(fā)者平臺, 創(chuàng)建一個項目,我的理解是,我們的頁面就是這個項目,要由我們的項目,對谷歌發(fā)起授權(quán)請求,就類似微信小程序,向官方發(fā)起授權(quán),請求昵稱和頭像的這個場景,所以,后面我們的這個項目也要通過谷歌的審核。

  來到api服務

  下面進入到項目管理后臺

  然后要創(chuàng)建一個用戶憑據(jù),拿到我們項目的id和key

  配置下面的域名,也就是讓谷歌知道,用戶從哪個域名發(fā)起請求事合理的,可以用本地localhost進行測試。提醒注冊不能用局域網(wǎng)IP。

  然后在API庫中,選擇我們要用的API,我的需求是獲取通訊錄,所以我啟用了people API。

  這樣就會在API庫里,都會有用法和說明,我是自己去他的git上拉取的,看了下代碼流程,然后自己改動,git上的代碼很簡潔

  OAuth 同意屏幕 就是我們的應用在授權(quán)時,會跳出如下的界面

  以上屏幕就是統(tǒng)一,假如我們的應用沒有通過谷歌的驗證,那出現(xiàn)的提示就會以應用不安裝。

  想要通過,看看下面官方流程:

  一般在開發(fā)的時候,只是發(fā)布到正式了,沒通過就是了。在開發(fā)環(huán)境沒問題。

  這樣就可以拿到數(shù)據(jù)。 以下全部的代碼

  // 初始化谷歌授權(quán)登錄
  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))
  }
  )
  },
  /**
  * Called when the signed in status changes, to update the UI
  * appropriately. After a sign-in, the API is called.
  */
  updateSigninStatus(isSignedIn) {
  // 是否登錄
  if (isSignedIn) {
  console.log('已登錄')
  this.listConnectionNames()
  } else {
  console.log('未登錄')
  }
  },
  /**
  * Sign in the user upon button click.
  */
  handleAuthClick() {
  // 是否登錄
  let flag = gapi.auth2.getAuthInstance().isSignedIn.get()
  if (flag) {
  // 如果已經(jīng)登錄,就直接彈出窗口
  this.listConnectionNames()
  } else {
  // 未登錄就調(diào)用出登錄授權(quán)
  gapi.auth2.getAuthInstance().signIn()
  }
  },
  /**
  * Sign out the user upon button click.
  */
  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() {
  // 谷歌登錄授權(quán)初始化
  gapi.load('client:auth2', that.initClient)
  },

  以上就是關(guān)于用vue調(diào)用谷歌授權(quán)登錄獲取用戶通訊錄的實現(xiàn)的敘述。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127617.html

相關(guān)文章

  • 微信小程序開發(fā)中二三事之網(wǎng)易云信IMSDK DEMO

    摘要:傳統(tǒng)的網(wǎng)頁編程采用的三劍客來實現(xiàn),在微信小程序中同樣有三劍客。觀察者模式不難實現(xiàn),重點是如何在微信小程序中搭配其特有的生命周期來使用。交互事件傳統(tǒng)的事件傳遞類型有冒泡型與捕獲型,微信小程序中自然也有。 本文由作者鄒永勝授權(quán)網(wǎng)易云社區(qū)發(fā)布。 簡介為了更好的展示我們即時通訊SDK強悍的能力,網(wǎng)易云信IM SDK微信小程序DEMO的開發(fā)就提上了日程。用產(chǎn)品的話說就是: 云信 IM 小程序 S...

    weij 評論0 收藏0
  • OpenApplus小程序容器

    摘要:參數(shù)格式為,其中為,僅支持一層字典否調(diào)用成功的回調(diào)函數(shù)否調(diào)用失敗的回調(diào)函數(shù)否調(diào)用結(jié)束的回調(diào)函數(shù)調(diào)用成功失敗都會執(zhí)行警告框。 概述 OpenApp+ 一個小程序容器,配置簡單、功能完善、界面流暢、開箱即用!使用OpenApp+可以快速擴展你的APP,使其擁有與微信一樣的功能擴展可能,讓App的所有的功能都通過小程序來實現(xiàn),動態(tài)更新,更快的響應用戶需求。其擁有的管理具備版本管理功能,讓功能...

    neuSnail 評論0 收藏0
  • web后臺 - 收藏集 - 掘金

    摘要:請欣賞手把手教程后端博客系統(tǒng)文章系統(tǒng)掘金本期主要是文章保存功能,涉及到草稿文章發(fā)布歷史這三個要點。一談談連接管理后端掘金連接管理概述最近重讀了權(quán)威指南部分章節(jié),結(jié)合來對部分內(nèi)容進行印證并記錄下來。 Spring Boot干貨系列:(四)開發(fā)Web應用之Thymeleaf篇 | 掘金技術(shù)征文 - 掘金原文地址:Spring Boot干貨系列:(四)開發(fā)Web應用之Thymeleaf篇博客...

    Me_Kun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<