Expo反应原生从Google API获取数据

时间:2017-12-01 17:47:04

标签: javascript networking react-native google-api expo

我想从使用他的Google帐户登录的人那里获取数据。我能够登录并收到令牌,但我无法获取数据。它似乎根本没有回应。没有错误抛出,它似乎等待

async  logIn() {
  try {
    const result = await Expo.Google.logInAsync({
      androidClientId: '645999128246-gv9drk3gtad84ikeifg37p4k5phdu705.apps.googleusercontent.com',
     // iosClientId: '116235701426-lsptd400ahlctrlveoe4vlg96hcjne51.apps.googleusercontent.com',
      scopes: ['profile', 'email'],
    });

    if (result.type === 'success') {
      console.log(result.accessToken);
      getUserInfo(result.accessToken);
      return result.accessToken;
    } else {
      return {cancelled: true};
    }
  } catch(e) {
    return {error: true};
  }
}
 getUserInfo(accessToken) {
    fetch('https://www.googleapis.com/userinfo/v2/me', {
    headers: { Authorization: `Bearer ${accessToken}`},
  }).then(res => {console.log(res)});
}
  render() {
  this.logIn();
  (...)

1 个答案:

答案 0 :(得分:0)

  1. 您对await的调用缺少this.logIn();建议您阅读有关异步函数和JavaScript中的承诺
  2. 您正在渲染调用中进行繁重的网络工作,建议您阅读React性能编码和反应代码的一般组织