我需要我的应用程序从gmail中找到用户联系人。所以我需要使用来自google联系人api的api
https://www.google.com/m8/feeds/contacts/{userEmail}/full当我向这个网址发送GET请求时,我得到:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}我的问题是如何让react-native-google-signin?accessToken请求这个api。我已经试过了
GoogleSignin.getCurrentUser().then(infos => console.log(infos));我得到这个功能的用户信息,如姓名,照片,电子邮件.我得到一个字段idToken,但是当我将这个令牌添加到我的头请求中时,我总是得到代码403,所以我认为这不是访问令牌。
您能帮我找到访问令牌吗?还是有其他的解决方案可以直接找到与react本机google-signin的联系人?
编辑:也尝试过
GoogleSignin.getTokens().then((res) => { console.log(res); });但是没有记录我不知道为什么
发布于 2020-09-15 17:39:52
在使用accessToken登录后,可以通过调用GoogleSignIn.getTokens()方法来获得GoogleSignIn.signIn()。然后,当向accessToken发送GET请求时,可以将返回的GET附加到https://www.google.com/m8/feeds/contacts/default/full头。
警告:-- Google 现在已不再推荐,并计划于2021年6月15日日落。应用程序应该使用人民API。从迁移指南开始。见正式声明。
发布于 2020-06-03 18:52:13
你可以试试这个函数--它对我很好
_signIn = async () => {
try {
await GoogleSignin.hasPlayServices();
const userInfo = await GoogleSignin.signIn();
response: {
first_name: userInfo.user.givenName,
social_id: userInfo.user.id, last_name: userInfo.user.familyName, email: userInfo.user.email
}
// console.log('_signIn userInfo', userInfo);
} catch (error) {
if (error.code === statusCodes.SIGN_IN_CANCELLED) {
// console.log('_signIn error.code 1', error.code);
// user cancelled the login flow
} else if (error.code === statusCodes.IN_PROGRESS) {
// console.log('_signIn error.code 2 ', error.code);
// operation (f.e. sign in) is in progress already
} else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
// console.log('_signIn error.code 3', error.code);
// play services not available or outdated
} else {
// console.log('_signIn else', error);
// some other error happened
}
}
};https://stackoverflow.com/questions/62173155
复制相似问题