`
modun
  • 浏览: 149897 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用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;
  	}
分享到:
评论
1 楼 qesc 2010-05-04  
想知道,楼主调试CURL模拟登陆邮件的时候,用了哪些方便的软件吗?上次写CURL模拟登陆SOHU抓邮箱好友,只会用FF下的FireBug,感觉挺麻烦的。

相关推荐

    Curl获取网络时间.zip_Curl获取网络时间_curl 时间_curl 网络时间_网络时间 curl_网络时间获取

    本教程将详细讲解如何使用Curl库在C++中获取网络时间。 首先,你需要在你的项目中包含Curl库。你可以从Curl的官方网站下载源代码并编译,然后将其库文件添加到你的项目路径中。在Windows上,这可能涉及设置包含目录...

    bat获取网页信息 命令行下调用curl获取网页信息

    命令行下调用curl获取网页信息,例如在Java servlet中使用response.getWriter().print("success") curl就可以获取到"success",并保存到check.txt中,再从check.txt中读取数据,并做判断

    Qt工程中使用curl进行网络请求,最小程序

    在本文中,我们将深入探讨如何在Qt工程中利用curl库进行网络请求,这是一个最小化的示例,可以帮助开发者了解如何将curl集成到Qt项目中。首先,让我们了解一下curl库和Qt框架的基本概念。 **curl库介绍** curl是一...

    利用openssl和curl库获取https服务端证书

    在实际应用中,了解如何获取并检查服务器证书对于开发者和网络安全人员至关重要,它可以帮助检测中间人攻击、验证服务器身份以及确保数据传输的安全性。同时,openssl和curl库也是开发HTTPS应用时不可或缺的工具,...

    PHP获取邮箱联系人列表

    3. **调用API**:使用访问令牌,向邮箱服务提供商的API发送请求,请求获取联系人列表。 4. **处理响应**:API响应通常为JSON格式,解析这些数据,将其转换为PHP对象或数组。 5. **存储数据**:将解析后的联系人数据...

    qt5使用curl实现文件下载的示例程序

    例如,可以使用`curl_easy_init()`初始化cURL会话,然后使用`curl_easy_setopt()`设置不同的选项。 3. **文件下载过程**: - 设置URL:`curl_easy_setopt(curl, CURLOPT_URL, ...

    curl 获取需要授权页面的方法

    本文将深入探讨如何使用`curl`和`file_get_contents`在PHP中获取需要授权的页面内容。 首先,`curl`(Client URL Library)是一个强大的命令行工具和库,用于传输数据,它支持多种协议,包括HTTP、HTTPS等。在PHP中...

    curl c++使用

    【标题】:“curl c++使用” 在C++编程中,`curl`库是一个非常重要的工具,它允许开发者通过命令行接口或API实现HTTP、HTTPS和其他网络协议的客户端功能。本篇将详细介绍如何在C++项目中集成和使用`curl`库进行网络...

    vs使用curl模板(包含静态动态库)

    - 在执行请求后,使用`curl_easy_strerror()`获取错误信息,通过`curl_easy_errno(curl)`获取错误代码,帮助调试问题。 6. **多线程应用**: - 如果你的应用是多线程的,可能需要使用`curl_multi_init()`和`curl_...

    【Azure Developer】使用 CURL 获取 Key Vault 中 Secrets 中的值.doc

    本篇将详细讲解如何使用CURL命令行工具通过REST API获取Azure Key Vault中的Secrets值。 首先,当我们尝试使用CURL命令获取Key Vault Secrets时,可能会遇到“Missing Token”错误,这意味着请求缺少必要的身份验证...

    Curl.zip_C++ curl_DEMO_c++ curl_curl_curl c++

    - 使用`curl_easy_strerror()`获取错误码的文本描述,便于调试。 5. **上传与下载**: - 对于文件下载,可以通过设置`CURLOPT_WRITEFUNCTION`回调,将接收到的数据写入文件。 - 文件上传则可以通过`CURLOPT_...

    使用curl-config配置选项

    curl-config 配置选项的使用 curl-config 是一个命令行工具,用于显示关于 curl 和 libcurl 安装的信息。下面是对 curl-config 的详细介绍: curl-config 的使用 curl-config 可以使用多种选项来显示不同的信息。...

    curl下载curl包下载

    例如,开发者常使用`curl`与API交互,获取或发送JSON数据。通过管道(`|`)或重定向(`>`), `curl`可以与其他命令结合,实现复杂的自动化任务。 在压缩包`curl文件`中,可能包含了不同版本的`curl`,包括源代码、预...

    E:\daily\202310\1026\利用openssl和curl库获取https服务端证书\利用openssl和curl库

    除了openssl和curl,还可以使用其他库如OpenSSL的`X509`结构和`PEM_read_bio_X509`函数来解析和读取证书。`GetSSLCert.h`和`GetSSLCert.cpp`可能是实现这一功能的头文件和源代码。 总的来说,了解如何利用openssl和...

    linux sftp、ftp上传(使用curl)

    本文将深入探讨如何使用curl命令来实现在Linux环境下进行SFTP和FTP上传操作。 首先,让我们了解一下SFTP。SFTP是一种基于SSH(Secure Shell)的安全文件传输协议,它提供了安全的数据传输,保护了用户的登录凭证和...

    PHP CURL获取返回值的方法

    在探讨PHP中使用CURL库来获取HTTP请求的返回值时,我们首先要了解CURL库的基本功能和使用场景。CURL库是一个广泛用于发送和接收文件的工具,支持多种协议,包括HTTP、HTTPS、FTP等。它允许开发者在脚本中执行各种...

    使用CURL抓取网页数据

    本教程将详细讲解如何使用CURL来抓取网页数据,并结合C++的STL字符串进行分析,最终将提取的数据写入log.txt文件。 首先,我们要了解CURL的基本用法。CURL可以用来发送HTTP请求,获取服务器的响应。例如,使用CURL...

    curl-7.18.2-win32-nossl.zip

    《curl-7.18.2-win32-nossl.zip:Windows下的文件传输利器——curl的深度解析》 在互联网技术高速发展的今天,数据的传输成为了一个不可或缺的部分。curl,一个强大的命令行工具,因其支持多种协议和跨平台特性而广...

    windows 下可以使用curl命令

    标题 "windows 下可以使用curl命令" 暗示了我们讨论的是如何在Windows操作系统环境下使用curl工具。curl是一个强大的命令行工具,用于传输数据到或从服务器,支持多种协议如HTTP、HTTPS、FTP等。在Windows系统中,它...

    VB调用curl

    4. 发起请求:通过VB函数,使用curl发起请求到微信支付的API服务器,获取预支付交易会话标识等关键信息。 5. 处理响应:接收到服务器的响应后,VB代码需要解析返回的数据,通常是JSON格式,然后根据微信支付的规范...

Global site tag (gtag.js) - Google Analytics