使用php api动态验证谷歌日历使用OAuth 2.0

时间:2014-01-20 13:04:13

标签: php curl google-api google-api-php-client

我们想从谷歌日历中获取数据并通过外部API来源插入数据。   但我们希望使用电子邮件自动登录客户端,并保存密码alredy。

    $authUrl = $client->createAuthUrl ();
echo $authUrl;
print "<a class='login' href='$authUrl'>Connect Me!</a>";

客户端不应该点击仅通过curl和客户端获取的登录凭据    登录谷歌日历并动态生成令牌。    我们使用过google calender php api。

$oauth2token_url = "https://accounts.google.com/o/oauth2/token";
 $clienttoken_post = array(
 "client_id" => '',
 "client_secret" => '');


$curl = curl_init($oauth2token_url); 

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt ($curl, CURLOPT_HTTPHEADER, Array("application/x-www-form-urlencoded"));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);


  if($client->isAccessTokenExpired()) {  

    echo 'Access Token Expired'; // debug

    $json_response = curl_exec($curl); // JSON value returned

    curl_close($curl);

    $authObj = json_decode($json_response);

}

此代码不会生成令牌。

我们不要求重定向用户或进行令牌交换。    如果$ user ='user@gmail.com',我们要求;      $ pass ='myPassword';      传递给代码令牌为calender api生成使用OAuth 2.0

1 个答案:

答案 0 :(得分:0)

你的网址有https,所以你需要使用它来处理它:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

使用此选项可以查看curl操作的调试消息,以便您自己追踪:

curl_setopt($curl, CURLOPT_VERBOSE, true);