谷歌API - 获取联系人列表使用PHP
问题描述:
我想在我的网站使用PHP获取GMail联系人列表。谷歌API - 获取联系人列表使用PHP
而且教程中,我提到Here
CODE:
<?php
// disable warnings
if (version_compare(phpversion(), "5.3.0", ">=") == 1)
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
else
error_reporting(E_ALL & ~E_NOTICE);
$sClientId = '564766218700-
fgtj5fba9h15g8na4khdho1uavo0rtjq.apps.googleusercontent.com';
$sClientSecret = 'GldOKp2S2ABdp-7owp3ZO_cE';
$sCallback = 'http://localhost/GmailContact/index.php'; // callback url, don't forget
to change it to your!
$iMaxResults = 20; // max results
$sStep = 'auth'; // current step
// include GmailOath library https://code.google.com/p/rspsms/source/browse/trunk
/system/plugins/GmailContacts/GmailOath.php?r=11
include_once('GmailOath.php');
session_start();
// prepare new instances of GmailOath and GmailGetContacts
$oAuth = new GmailOath($sClientId, $sClientSecret, $argarray, false, $sCallback);
$oGetContacts = new GmailGetContacts();
if ($_GET && $_GET['oauth_token']) {
$sStep = 'fetch_contacts'; // fetch contacts step
// decode request token and secret
$sDecodedToken = $oAuth->rfc3986_decode($_GET['oauth_token']);
$sDecodedTokenSecret = $oAuth->rfc3986_decode($_SESSION['oauth_token_secret']);
// get 'oauth_verifier'
$oAuthVerifier = $oAuth->rfc3986_decode($_GET['oauth_verifier']);
// prepare access token, decode it, and obtain contact list
$oAccessToken = $oGetContacts->get_access_token($oAuth, $sDecodedToken,
$sDecodedTokenSecret, $oAuthVerifier, false, true, true);
$sAccessToken = $oAuth->rfc3986_decode($oAccessToken['oauth_token']);
$sAccessTokenSecret = $oAuth->rfc3986_decode($oAccessToken['oauth_token_secret']);
$aContacts = $oGetContacts->GetContacts($oAuth, $sAccessToken, $sAccessTokenSecret,
false, true, $iMaxResults);
// turn array with contacts into html string
$sContacts = $sContactName = '';
foreach($aContacts as $k => $aInfo) {
$sContactName = end($aInfo['title']);
$aLast = end($aContacts[$k]);
foreach($aLast as $aEmail) {
$sContacts .= '<p>' . $sContactName . '(' . $aEmail['address'] . ')</p>';
}
}
} else {
// prepare access token and set it into session
$oRequestToken = $oGetContacts->get_request_token($oAuth, false, true, true);
$_SESSION['oauth_token'] = $oRequestToken['oauth_token'];
$_SESSION['oauth_token_secret'] = $oRequestToken['oauth_token_secret'];
}
?>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Google API - Get contact list | Script Tutorials</title>
<link href="css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<header>
<h2>Google API - Get contact list</h2>
<a href="http://www.script-tutorials.com/google-api-get-contact-list/"
class="stuts">Back to original tutorial on <span>Script Tutorials</span></a>
</header>
<img src="oauthLogo.png" class="google" alt="google" />
<?php if ($sStep == 'auth'): ?>
<center>
<h1>Step 1. OAuth</h1>
<h2>Please click <a href="https://www.google.com/accounts
/OAuthAuthorizeToken?oauth_token=<?php echo
$oAuth->rfc3986_decode($oRequestToken['oauth_token']) ?>">this link</a> in order to
get access token to receive contacts</h2>
</center>
<?php elseif ($sStep == 'fetch_contacts'): ?>
<center>
<h1>Step 2. Results</h1>
<br />
<?= $sContacts ?>
</center>
<?php endif ?>
我有错误遇到如:
的OAuth令牌参数丢失。 这就是我们所知道的。
问题: 1.如何获取OAuth访问令牌?
请帮帮我。
答
有几种访问令牌请求的方法,它们根据您正在构建的应用程序的类型而有所不同。
例如,JavaScript应用程序可能会使用浏览器重定向到Google来请求访问令牌,而安装在没有浏览器的设备上的应用程序使用Web服务请求。
有些请求需要身份验证步骤,用户使用其Google帐户登录。登录后,会询问用户是否愿意授予应用程序请求的权限。这个过程称为用户同意。
如果用户授予权限,Google授权服务器会向您的应用程序发送访问令牌(或您的应用程序可用于获取访问令牌的授权码)。如果用户未授予权限,则服务器返回错误。
这里是link oauth游乐场,这有助于了解Oauth的概念。
此外,请检查此link的联系人API。
检查此链接oauth PHP客户端http://25labs.com/import-gmail-or-google-contacts-using-google-contacts-data-api-3-0-and-oauth-2-0- in-php/ – SGC 2014-12-03 18:07:37
@SGC我使用了上面指定的tutorial.But我的电子邮件地址显示为空白。 – 2014-12-04 06:39:14
@SGC echo($ xmlrespose)返回:usageLimits accessNotConfigured访问未配置。 API未针对您的项目启用,或者API密钥上配置了per-IP或per-Referer限制,并且请求不符合这些限制。请使用Google Developers Console更新您的配置。 https://console.developers.google.com。 – 2014-12-04 10:32:51