使用curl獲取google聯絡人列表 (向zend的Gdata say no)
登陸google
public function googleLogin($email,$password){
$session = UserOper::openSession();//如果已經登陸,直接返回
if($session['googleAuth']){
$session->close();
return true;
}
$data = array(
'accountType' => 'GOOGLE',
'Email' => $email,
'Passwd' => $password,
'service' => 'cp', //google 一系列api 的簡寫,在google 上能找到,可以換成你想要的服務簡寫
'source' => 'test-oauth-1.0', //給你自己的應用程式命名
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
preg_match('/Auth=.+/',$output,$tempArray);
if($info['http_code']!=200 or empty($tempArray)){
return false;
}
$auth = 'Authorization: GoogleLogin auth='.substr($tempArray[0],5);
$session['googleAuth'] = $auth;
return true;
}
獲取聯絡人資訊(atom格式資料來源)
public function getGoogleResource($url){
$session = UserOper::openSession();
if(!$session['googleAuth']){
$session->close();
return false;
}
$session->close();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER,array($session['googleAuth']));
$output = curl_exec($ch);
$info = curl_getinfo($ch);
if($info['http_code']!=200) return false;
return $output;
}
解析資料來源,讀取聯絡人email地址(使用 php DOMDocument)
public function getGoogleFriends(){
$url = 'http://www.google.com/m8/feeds/contacts/default/full';
$source = $this->getGoogleResource($url);
$friends = array();
if($source){
$dom = new DOMDocument();
$dom->loadXML($source);
$entries = $dom->getElementsByTagName('entry');
foreach ( $entries as $entry ){
$email = $entry->getElementsByTagName('email');
$value = $email->item(0)->getAttributeNode("address")->value;
$friends[$value] = $value;
}
return $friends;
}
return false;
}
相關文章
- iOS獲取通訊錄聯絡人資訊iOS
- android 從SIM卡獲取聯絡人資訊Android
- android ContentResolver的使用(獲取和修改聯絡人資訊demo)Android
- 影片直播系統原始碼,Android 讀取聯絡人列表原始碼Android
- Android在到處.vcf聯絡人時,vCard獲取不到版本號Android
- Android獲取手機聯絡人匹配使用者表並按字母A Z排序展示Android排序
- Android KK臺,聯絡人列表#集團放置A~Z之前Android
- Android獲取聯絡人和電話號碼Android
- 跨程式共享資料,讀取聯絡人資訊
- 透過地址簿向聯絡人傳送病毒郵件!
- curl 獲取外網IP
- 使用CURL獲取速賣通詳情的API介面API
- CRM系統中的聯絡人是什麼?如何進行聯絡人管理?
- Calendar GData API / Google Calendar Connectors deprecationAPIGo
- 【Azure Developer】使用 CURL 獲取 Key Vault 中 Secrets 中的值Developer
- iOSContactsUI(聯絡人)iOSUI
- 蘋果iphone XS匯入聯絡人的方法 iphone XS怎麼批次匯入聯絡人?蘋果iPhone
- OPPO手機緊急聯絡人設定使用教程 OPPO手機怎麼設定緊急聯絡人
- 網站聯絡人更改操作網站
- win10 如何匯入人脈聯絡人_win10人脈怎麼匯入聯絡人Win10
- iPhone緊急聯絡人設定教程 iPhone怎麼設定緊急聯絡人?iPhone
- C++--Win32--列表編輯--獲取列表內容--獲取列表行數--修改列表內容C++Win32
- Android2.0 如何設定和讀取聯絡人的分組(Group)Android
- 初識 iOS 9 中新的聯絡人框架iOS框架
- curl 請求獲取響應時間
- SQL獲取時間列表及月份列表SQL
- 以程式設計師的身份使用curl獲取速賣通詳情程式設計師
- 小米手機設定緊急聯絡人方法 小米能設定緊急聯絡人嗎?
- 獲取檔案列表 .net
- tableView右側聯絡人/城市的索引設定View索引
- 如何批次獲取google pagerankGo
- HarmonyOS-基礎之聯絡人案例
- 遞迴獲取檔案列表遞迴
- Python: 列表、陣列及迭代器切片的區別及聯絡Python陣列
- 用於聯絡人管理的三個開源工具開源工具
- Word與Outlook聯絡人的郵件合併(轉)
- 使用requests獲取並向headers中新增cookieHeaderCookie
- MIUI7怎麼匯出匯入手機聯絡人?MIUI7匯入匯出手機聯絡人教程UI