登陆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;
}
分享到:
相关推荐
本教程将详细讲解如何使用Curl库在C++中获取网络时间。 首先,你需要在你的项目中包含Curl库。你可以从Curl的官方网站下载源代码并编译,然后将其库文件添加到你的项目路径中。在Windows上,这可能涉及设置包含目录...
命令行下调用curl获取网页信息,例如在Java servlet中使用response.getWriter().print("success") curl就可以获取到"success",并保存到check.txt中,再从check.txt中读取数据,并做判断
在本文中,我们将深入探讨如何在Qt工程中利用curl库进行网络请求,这是一个最小化的示例,可以帮助开发者了解如何将curl集成到Qt项目中。首先,让我们了解一下curl库和Qt框架的基本概念。 **curl库介绍** curl是一...
在实际应用中,了解如何获取并检查服务器证书对于开发者和网络安全人员至关重要,它可以帮助检测中间人攻击、验证服务器身份以及确保数据传输的安全性。同时,openssl和curl库也是开发HTTPS应用时不可或缺的工具,...
3. **调用API**:使用访问令牌,向邮箱服务提供商的API发送请求,请求获取联系人列表。 4. **处理响应**:API响应通常为JSON格式,解析这些数据,将其转换为PHP对象或数组。 5. **存储数据**:将解析后的联系人数据...
例如,可以使用`curl_easy_init()`初始化cURL会话,然后使用`curl_easy_setopt()`设置不同的选项。 3. **文件下载过程**: - 设置URL:`curl_easy_setopt(curl, CURLOPT_URL, ...
本文将深入探讨如何使用`curl`和`file_get_contents`在PHP中获取需要授权的页面内容。 首先,`curl`(Client URL Library)是一个强大的命令行工具和库,用于传输数据,它支持多种协议,包括HTTP、HTTPS等。在PHP中...
【标题】:“curl c++使用” 在C++编程中,`curl`库是一个非常重要的工具,它允许开发者通过命令行接口或API实现HTTP、HTTPS和其他网络协议的客户端功能。本篇将详细介绍如何在C++项目中集成和使用`curl`库进行网络...
- 在执行请求后,使用`curl_easy_strerror()`获取错误信息,通过`curl_easy_errno(curl)`获取错误代码,帮助调试问题。 6. **多线程应用**: - 如果你的应用是多线程的,可能需要使用`curl_multi_init()`和`curl_...
本篇将详细讲解如何使用CURL命令行工具通过REST API获取Azure Key Vault中的Secrets值。 首先,当我们尝试使用CURL命令获取Key Vault Secrets时,可能会遇到“Missing Token”错误,这意味着请求缺少必要的身份验证...
- 使用`curl_easy_strerror()`获取错误码的文本描述,便于调试。 5. **上传与下载**: - 对于文件下载,可以通过设置`CURLOPT_WRITEFUNCTION`回调,将接收到的数据写入文件。 - 文件上传则可以通过`CURLOPT_...
curl-config 配置选项的使用 curl-config 是一个命令行工具,用于显示关于 curl 和 libcurl 安装的信息。下面是对 curl-config 的详细介绍: curl-config 的使用 curl-config 可以使用多种选项来显示不同的信息。...
例如,开发者常使用`curl`与API交互,获取或发送JSON数据。通过管道(`|`)或重定向(`>`), `curl`可以与其他命令结合,实现复杂的自动化任务。 在压缩包`curl文件`中,可能包含了不同版本的`curl`,包括源代码、预...
除了openssl和curl,还可以使用其他库如OpenSSL的`X509`结构和`PEM_read_bio_X509`函数来解析和读取证书。`GetSSLCert.h`和`GetSSLCert.cpp`可能是实现这一功能的头文件和源代码。 总的来说,了解如何利用openssl和...
本文将深入探讨如何使用curl命令来实现在Linux环境下进行SFTP和FTP上传操作。 首先,让我们了解一下SFTP。SFTP是一种基于SSH(Secure Shell)的安全文件传输协议,它提供了安全的数据传输,保护了用户的登录凭证和...
在探讨PHP中使用CURL库来获取HTTP请求的返回值时,我们首先要了解CURL库的基本功能和使用场景。CURL库是一个广泛用于发送和接收文件的工具,支持多种协议,包括HTTP、HTTPS、FTP等。它允许开发者在脚本中执行各种...
本教程将详细讲解如何使用CURL来抓取网页数据,并结合C++的STL字符串进行分析,最终将提取的数据写入log.txt文件。 首先,我们要了解CURL的基本用法。CURL可以用来发送HTTP请求,获取服务器的响应。例如,使用CURL...
《curl-7.18.2-win32-nossl.zip:Windows下的文件传输利器——curl的深度解析》 在互联网技术高速发展的今天,数据的传输成为了一个不可或缺的部分。curl,一个强大的命令行工具,因其支持多种协议和跨平台特性而广...
标题 "windows 下可以使用curl命令" 暗示了我们讨论的是如何在Windows操作系统环境下使用curl工具。curl是一个强大的命令行工具,用于传输数据到或从服务器,支持多种协议如HTTP、HTTPS、FTP等。在Windows系统中,它...
4. 发起请求:通过VB函数,使用curl发起请求到微信支付的API服务器,获取预支付交易会话标识等关键信息。 5. 处理响应:接收到服务器的响应后,VB代码需要解析返回的数据,通常是JSON格式,然后根据微信支付的规范...