我在ios应用程序中构建了一个登录按钮。我已经按照这个documentation。
我的ios应用程序的登录工作非常好。我成功收到了auth对象:
{accessToken="***********", refreshToken="*****", code="*******", expirationDate="2015-07-27 11:00:07 +0000"}
我也成功获得了一次授权代码
[GPPSignIn sharedInstance].homeServerAuthorizationCode;
现在该怎么办。根据该文档,我应该将homeServerAuthorizationCode
发送到我的服务器。然后用访问令牌交换它。但它没有提到我怎么能做到这一点。
我发现了这篇文章https://developers.google.com/identity/sign-in/web/server-side-flow,但它只描述了如何获取访问令牌。它没有显示如何做到这一点!
在我成功检索令牌之后。如何调用google plus api。例如,检索用户配置文件?
答案 0 :(得分:0)
首先您必须在项目中安装Google客户端软件包
"google/apiclient": "^2.0.0@RC"
然后,从您的IOS授权阵列,您可以找到" server_code":" **********" 。从这个服务器代码,你可以从服务器端获得新的身份验证结果(acees_token,refresh_token,expire等)。请通过以下代码
$redirect_uri = 'http://******/gplusresponse';
$client = new Google_Client();
$client->setClientId('YOUR_CLIENT_ID');
$client->setClientSecret('YOUR_CLIENT_SECRET');
$client->setRedirectUri($redirect_uri);
$client->setAccessType("offline");
$client->setScopes(array(
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/plus.stream.write'
));
$token=$client->authenticate(YOUR_SERVER_CODE);
print_r($token);
它将显示一个新的令牌结果数组
{ "access_token": "*******************", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "***************", "id_token": "***************" }
现在,您可以通过将url en point中的访问令牌作为GET
提供来验证用户https://www.googleapis.com/plus/v1/people/me/?access_token=YOUR_NEW_ACCESS_TOKEN
结果将显示授权的用户个人资料。