Aug 9
逆引きrhaco43: Googleサービスへの認証を行う
Googleのサービスをスクリプトで使いたい場合に認証(Google Account Authentication)が必要なケースがあります。(例えばGoogle Calendar API)
認証方法としてはClient LoginとAuthSubの2通りあるのですが、今回はそのうちClient LoginをBrowserクラスを使って行います。
$flow = new Flow();
$user = 'Googleアカウント名';//gmailアドレスを使います
$pass = 'パスワード';
$browser = new Browser();
$body = $browser->post("https://www.google.com/accounts/ClientLogin",
array(
'Email'=>$user,
'Passwd'=>$pass,
'service'=>'サービス名'//カレンダーの場合はcl
)
);
if(stristr($body,'error')!==false){
ExceptionTrigger::raise(new GenericException("認証失敗"));
}else{
//結果からセッションに必要な情報を登録しておく
if(preg_match('@^SID\=(.*?)$@ism',$body,$match)){
$flow->setSession('sid',$match[1]);
}
if(preg_match('@^LSID\=(.*?)$@ism',$body,$match)){
$flow->setSession('lsid',$match[1]);
}
if(preg_match('@^Auth\=(.*?)$@ism',$body,$match)){
$flow->setSession('auth',$match[1]);
}
$result = $browser->get('サービスのurl’);//GET処理。postなら$browser->post
...以下結果を処理する
}
このエントリーのはてなブックマーク (