以前のリビジョンの文書です
Expo.Google.logInAsync を使ったGoogleサインイン。
Error: cannot set promise - some async operation is still in progress
SDK32になると、使えなくなった。
現在対応検討中。
それまでSDK31を使う。
error [TypeError: Cannot read property 'Google' of undefined]
import Expo from “expo”は使えなくなった。
import * as Expo from “expo”を使う。
Google developers consoleで任意のプロジェクトを作成する。
認証情報画面を開き、認証情報を作成でOAuthクライアントIDを作成する。
SHA-1 署名証明書フィンガープリントを発行する。
> openssl rand -base64 32 | openssl sha1 -c
try { const result = await Expo.Google.logInAsync({ androidClientId: androidClientId, scopes: ["profile", "email","https://www.googleapis.com/auth/spreadsheets"] }) if (result.type === "success") { console.log(result) this.setState({ signedIn: true, name: result.user.name, photoUrl: result.user.photoUrl, accessToken:result.accessToken, refreshToken:result.refreshToken, }) ・・・
try { let url= "https://accounts.google.com/o/oauth2/token" let bodyString = JSON.stringify({ client_id:androidClientId , refresh_token:this.state.refreshToken , grant_type:"refresh_token" , }) const result = await fetch(url, { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: bodyString }); let responseJson = await result.json(); if (responseJson.access_token !== undefined) { //ステート更新 this.setState({ accessToken : responseJson.access_token }) ・・・
let userInfoResponse = await fetch('https://www.googleapis.com/userinfo/v2/me', { headers: { Authorization: `Bearer ${value}` }, }); let userInfo = await userInfoResponse.json(); console.log(userInfo) this.setState({ signedIn: true, name: userInfo.name, photoUrl: userInfo.picture })