2014-12-03 12 views
6

Chcę uzyskać listę kontaktów GMail na mojej stronie za pomocą PHP.Google API - Uzyskaj listę kontaktów za pomocą PHP

i samouczek odniosłem Here

KOD:

<?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 ?> 

ja napotykają z błędem, takie jak:

tokenu OAuth parametru brakuje. To wszystko, co wiemy.

Pytania: 1. Jak zdobyć token dostępu OAuth?

Proszę, pomóż mi.

+0

Sprawdź ten link dla klienta PHP oauth http://25labs.com/import-gmail-or-google-contacts-using-google-contacts-data-api-3-0-and-oauth-2-0- in-php/ – SGC

+0

@SGC Użyłem powyższego samouczka. Ale moje adresy e-mailowe są puste. –

+0

@SGC echo ($ xmlrespose) zwraca: usageLimits accessNotConfigured Nie skonfigurowano dostępu. Interfejs API nie jest włączony dla Twojego projektu lub w Twoim kluczu interfejsu API jest skonfigurowane ograniczenie dla pojedynczego adresu IP lub dla każdego recenzenta, a żądanie nie spełnia tych ograniczeń. Skorzystaj z Google Developers Console, aby zaktualizować konfigurację. https://console.developers.google.com. –

Odpowiedz

0

Istnieje kilka sposobów na uzyskanie żądania tokenu dostępu i różnią się one w zależności od typu budowanej aplikacji.

Na przykład aplikacja JavaScript może zażądać tokenu dostępu przy użyciu przekierowania przeglądarki do Google, a aplikacja zainstalowana na urządzeniu, które nie ma przeglądarki, korzysta z żądań usług sieci Web.

Niektóre żądania wymagają kroku uwierzytelniania, w którym użytkownik loguje się przy użyciu swojego konta Google. Po zalogowaniu użytkownik jest pytany, czy chce udzielić uprawnień, o które prosi twoja aplikacja. Ten proces nazywany jest zgodą użytkownika.

Jeśli użytkownik przyzna zezwolenie, serwer autoryzacji Google wysyła aplikacji token dostępu (lub kod autoryzacji, za pomocą którego aplikacja może uzyskać token dostępu). Jeśli użytkownik nie udzieli uprawnienia, serwer zwróci błąd.

Oto link dla oauth plac zabaw, który pomaga zrozumieć pojęcia Oauth.

Sprawdź również ten link dla interfejsu API kontaktów.

Powiązane problemy