Google api Google用Javascript和PHP联系API
我正在制作一个由ajax控制的网站,在这个网站上,我使用谷歌的Javascript SDK对我的用户进行身份验证,并访问他们的谷歌联系人。我打算做的是:Google api Google用Javascript和PHP联系API,google-api,google-api-php-client,Google Api,Google Api Php Client,我正在制作一个由ajax控制的网站,在这个网站上,我使用谷歌的Javascript SDK对我的用户进行身份验证,并访问他们的谷歌联系人。我打算做的是: 通过我们的重定向和请求访问他们的联系人列表,以及访问管理他们的联系人,在浏览器中对用户进行身份验证 如果他/她授予我访问权限,请将用户id与刷新令牌一起存储在我的数据库中。如果我没有弄错,我只能通过服务器端获取刷新令牌 稍后,如果用户希望通过我的网站查看他们的google联系人,请向我的服务器发送ajax请求,该服务器向用户请求access_令
- 请求用户允许访问Google联系人,而无需从我的网站重定向他(通过弹出窗口)
- 获取此权限的访问令牌和刷新令牌,并将其存储在数据库中
- 使用刷新令牌,在服务器端为用户生成访问令牌,并处理数据,然后将数据发送回服务器
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setScopes('https://www.googleapis.com/auth/plus.me');
$client->setRedirectUri($PHP_SELF);
$client->setState('offline');
$authUrl = $client->createAuthUrl();
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
$result=$client->getAccessToken();
} else {
header("Location: ".$authUrl);
exit;
}
为了实现我想要的,我应该通过Javascript SDK以某种方式获得$\u get['code']参数,但我不知道如何获得:|经过几天的头痛,我也找到了这个。。。感谢谷歌,你的文档太糟糕了
$client->setRedirectUri($redirect_uri);
$redirect_uri参数应该是一个字符串:“postmessage”,当通过javascript进行身份验证时,您应该请求代码而不是令牌,然后将其发送到服务器端脚本,以进行身份验证并交换令牌
gapi.auth.authorize({client_id: googleApi.clientId, scope: googleApi.scopes, response_type: 'code', immediate: true}, g_handleAuthResult);
访问令牌在3600秒或1小时内有效,我知道这一点,但我还需要一个刷新令牌,我想通过PHP处理数据。我不认为将身份验证后获得的访问令牌发送到我的php服务器以供使用是一种好的做法,因为它是相当敏感的数据。您无法通过JavaScript获取刷新令牌,您需要从php.DalmTo获取它,我应该如何继续?请检查:
gapi.auth.authorize({client_id: googleApi.clientId, scope: googleApi.scopes, response_type: 'code', immediate: true}, g_handleAuthResult);