我试图从react原生应用程序接收谷歌任务列表。
我创建了一个新应用程序:
npx反应主动初始化谷歌任务应用程序
添加了程序包:
npm安装@react-native-google-signin/google-signin axios
并重写附录tsx
:
从“React”导入React,{useEffect,useState};从“react-native”导入{View、Button、Text、FlatList};进口{谷歌登录,状态代码,}来自“@react-native-google-signin/google-signin”;从“axios”导入axios;常量GOOGLE_WEB_CLIENT_ID=“38819132xxxxxxxxxxxxxxxxxxxxxxxlogleusercontent.com”;常量GOOGLE_ANDROID_CLIENT_ID=“38819132xxxxxxxxxxxxxx.googleusercontent.com”;常量应用程序=()=>{const[userInfo,setUserInfo]=useState(空);const[tasks,setTasks]=useState([]);使用效果(()=>{谷歌登录.configure({作用域:['https://www.googleapis.com/auth/tasks','https://www.googleapis.com/auth/calendar网址',],webClientId:GOOGLE_WEB_CLIENT_ID,});}, []);const signIn=异步()=>{尝试{等待GoogleSignin.hasPlayServices();const userInfo=等待GoogleSignin.signIn();setUserInfo(用户信息);fetchTasks(userInfo.idToken);}捕获(错误){console.log(“错误:”,错误);if(error.code===statusCodes.SIGN_IN_CANCELLED){console.log('用户取消了登录流');}else if(error.code===statusCodes.IN_PROGRESS){console.log('登录已在进行中');}else if(error.code===statusCodes.PLAY_SERVICES_NOT_AVAILABLE){console.log(“播放服务不可用或过时”);}其他{console.log('发生了其他错误:',error);}}};const fetchTasks=异步令牌=>{尝试{const响应=等待axios.get('https://www.googleapis.com/tasks/v1/users/@我/列表',{标头:{授权:`Bearer${token}`},},);setTasks(response.data.items);}捕获(错误){console.log('获取任务时出错:',错误);}};返回(<视图样式={{flex:1,justifyContent:“中心”,alignItems:“中心”}>{userInfo(<视图>欢迎,{userInfo.user.name}<平面列表数据={任务}keyExtractor={item=>item.id}renderItem={({item})=><Text>{item.title}</Text>}/></查看>) : (<><Button title=“使用谷歌登录”onPress={signIn}/></>)}</查看>);};导出默认应用程序;
我可以接收用户数据,但当我尝试获取任务列表时,我得到了一个带有此标记的http 401错误。
任务API在Google控制台中启用。我为web创建了OAuth凭据,Android尝试使用它-相同的http 401错误。
我需要使用什么类型的api_key来获取任务列表?我需要在谷歌控制台中更改什么才能使其正常工作?