这让我很精神。 我有一个网络应用程序和一个关联的Google帐户。我希望网络应用程序只使用这个谷歌驱动器和谷歌驱动器...永久。
我正在使用google / apiclient:^ 2.0 我已经设置了OAuth 2.0客户端ID并下载了JSON文件。
我有这个:
$this->client = new \Google_Client();
$this->client->setClientId('blahblahblah.apps.googleusercontent.com');
$this->client->setAuthConfig(base_path() . '/resources/assets/client_secret.json');
$this->client->setApplicationName('My Web App');
$this->client->setRedirectUri('somewhere');
$this->client->setScopes('https://www.googleapis.com/auth/drive');
return $this->client;
现在我跑...
$authUrl = $this->client->createAuthUrl();
echo '<a href="'.$authUrl.'">Go</a>';
并验证我得到了一个代码......
现在我的问题是......我该怎么处理这段代码?
我已经尝试过...... $this->client->authenticate('code here');
还有$accessToken = $client->fetchAccessTokenWithAuthCode('code here);
我不断获得dailyLimitExceededUnreg
或Invalid token format
我对Google身份验证API感到困惑和沮丧,而且文档似乎已经过时了。
任何正确方向的提示都会令人惊叹。
由于
答案 0 :(得分:0)
要获取访问令牌,您需要在以下某处&#34;某处&#34;路线:
$client->authenticate($_GET['code']);
$access_token = $client->getAccessToken();
访问令牌用于登录您的google驱动器
要使用谷歌驱动器,您需要实例化Google_Service_Drive
$drive = new Google_Service_Drive($client);
$files = $drive->files->listFiles(array())->getItems();
注意:访问令牌是用户+密码的一种形式,随着时间的推移而过期,因此如果它们过期,您需要获取新的
答案 1 :(得分:0)
几年前我做过这样的事情,并且在文档方面遇到了一些困难。
我通过代码为您找到它。我将此用于Gmail联系人列表,但程序看起来相同。我将尝试解释我经历的过程,我认为它应该帮助你。
这就是你所在的部分。您可以获得Google发送给您的代码,并将其保存在会话变量
中if (isset($_GET['code'])) {
$auth_code = $_GET["code"];
$_SESSION['google_code'] = $auth_code;
}
现在你必须发布到oauth2进行身份验证并获得你的acesstoken
$auth_code = $_SESSION['google_code'];
$max_results = 300;
$fields=array(
'code'=> urlencode($auth_code),
'client_id'=> urlencode($google_client_id),
'client_secret'=> urlencode($google_client_secret),
'redirect_uri'=> urlencode($google_redirect_uri),
'grant_type'=> urlencode('authorization_code')
);
$post = '';
foreach($fields as $key=>$value)
{
$post .= $key.'='.$value.'&';
}
$post = rtrim($post,'&');
$result = curl('https://accounts.google.com/o/oauth2/token',$post);
$response = json_decode($result);
$accesstoken = $response->access_token;
使用令牌,您将能够卷曲Google云端硬盘的终端并获得结果
$url = 'https://www.google.com/m8/feeds/contacts/default/full?max-results='.$max_results.'&alt=json&v=3.0&oauth_token='.$accesstoken;
$xmlresponse = curl($url);