如何从Google登录响应及指定多维数组中提取目标数据
嘿,我来帮你搞定这两个问题!
问题1:如何从Google登录的响应中获取对应数值?
首先得看你获取响应的方式:
- 如果用Google官方的PHP客户端库,先验证ID令牌拿到用户信息数组,之后直接通过键名提取就行:
$client = new Google_Client(['client_id' => '你的客户端ID']); $payload = $client->verifyIdToken($id_token); // 提取对应数值示例 $email = $payload['email']; $givenName = $payload['given_name']; $imageUrl = $payload['picture']; - 如果是直接调用API拿到JSON格式响应,先把JSON转成PHP数组,再按层级提取:
$user_info = json_decode($response_json, true); // 之后就可以像处理普通数组一样取值啦
问题2:从给定多维数组中提取指定字段
你的数组结构很明确,直接通过层级键名就能提取目标值,给你写个PHP代码示例:
// 提取用户邮箱 $user_email = $user_info['emails'][0]['value']; // 提取givenName(假设name数组存在,你描述里提到了这个字段) $user_given_name = $user_info['name']['givenName']; // 提取头像URL $user_image_url = $user_info['image']['url'];
为了避免数组键不存在导致报错,建议加上存在性检查,比如用null合并运算符:
$user_email = $user_info['emails'][0]['value'] ?? '未获取到邮箱'; $user_given_name = $user_info['name']['givenName'] ?? '未获取到名字'; $user_image_url = $user_info['image']['url'] ?? '未获取到头像URL';
这样就算某个字段意外缺失,代码也不会直接报错,而是返回你设置的默认值~
内容的提问来源于stack exchange,提问作者Kani R
相关产品推荐
相关产品推荐

