我目前正在使用LightOpenID允许用户登录我的网站,在那里我可以自动提取他们的用户名和电子邮件地址:
$openid->required = array('namePerson/first', 'namePerson/last', 'contact/email');
$openid->identity = 'https://www.google.com/accounts/o8/id';在这里,我使用了参数namePerson/first、namePerson/last和contact/email。
我知道为了获得用户联系人列表,我必须使用提要:
https://www.google.com/m8/feeds但是,我似乎不知道需要使用哪些参数来完成此任务?
如果我完全删除参数行,我只会得到一个空数组。
有没有人能帮我弄清楚需要哪些参数才能获得这些联系人?
下面是我的当前代码:
<?php
require '/var/www/libraries/openid.php';
try {
$openid = new LightOpenID;
if(!$openid->mode) {
//$openid->required = array('gd/fullName');
$openid->identity = 'https://www.google.com/m8/feeds/contacts/oshirowanen.y%40gmail.com/full';
header('Location: ' . $openid->authUrl());
exit;
} elseif($openid->mode == 'cancel') {
echo "cancelled";
exit;
} else {
if ( $openid->validate() ) {
$returned = $openid->getAttributes();
print_r($returned);
exit;
} else {
echo "something is wrong";
exit;
}
}
} catch(ErrorException $e) {
echo $e->getMessage();
}
?>发布于 2012-07-02 07:10:45
你不能用LightOpenID做到这一点,因为它只实现了OpenID协议。
为此,您需要使用OAuth (2.0)协议。每个the docs
关于授权协议
我们建议使用OAuth 2.0对请求进行授权。
如果您的应用程序具有某些不寻常的授权要求,例如在请求数据访问(混合)或授权的全域委派(2LO)的同时登录,那么您当前不能使用OAuth 2.0令牌。在这种情况下,您必须改用API1.0令牌和OAuth密钥。您可以在Google API控制台的API Access窗格的Simple API Access部分找到应用程序的API。
发布于 2012-06-29 03:38:00
正在检索所有联系人
要检索用户的所有联系人,请向以下URL发送授权的GET请求:
https://www.google.com/m8/feeds/contacts/{userEmail}/full
用适当的值代替userEmail。
注意:特殊的userEmail值default可用于指代通过身份验证的用户。
发布于 2012-08-09 00:15:19
根据文档应该是可能的:https://developers.google.com/accounts/docs/OpenID
OpenID+OAuth混合协议允许web开发人员将OpenID请求与OAuth身份验证请求组合在一起。这个扩展对于同时使用OpenID和OAuth的web开发人员很有用,特别是它通过请求用户批准一次而不是两次来简化用户的过程。
https://stackoverflow.com/questions/11176915
复制相似问题