2014-12-03 4 views
6

Ich möchte GMail Kontaktliste in meiner Website mit PHP.Google API - Holen Sie sich Kontaktliste mit PHP

Und Tutorial bezeichnet ich 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 ?> 

ich mit einem Fehler bin begegnen wie:

OAuth-Token Parameter fehlt. Das ist alles, was wir wissen.

Fragen: 1. Wie bekomme ich OAuth Access Token?

Bitte helfen Sie mir.

+0

Überprüfen Sie diesen Link für oauth PHP-Client http://25labs.com/import-gmail-o--google-contacts-using-google-contacts-data-api-3-0-and-oauth-2-0- in-php/ – SGC

+0

@SGC Ich habe das oben angegebene Tutorial.Aber meine E-Mail-Adressen werden leer angezeigt. –

+0

@SGC echo ($ xmlrespose) gibt zurück: usageLimits accessNotConfigured Zugriff nicht konfiguriert. Die API ist für Ihr Projekt nicht aktiviert oder es ist eine Beschränkung pro IP oder pro Referer für Ihren API-Schlüssel konfiguriert, und die Anforderung stimmt nicht mit diesen Einschränkungen überein. Verwenden Sie die Google Developers Console, um Ihre Konfiguration zu aktualisieren. https://console.developers.google.com. –

Antwort

0

Es gibt mehrere Möglichkeiten, die Zugriffstokenanforderung zu stellen, und sie variieren je nach dem Typ der Anwendung, die Sie erstellen.

Beispielsweise könnte eine JavaScript-Anwendung ein Zugriffstoken über eine Browserweiterleitung an Google anfordern, während eine Anwendung, die auf einem Gerät ohne Browser installiert ist, Webdienstanforderungen verwendet.

Einige Anfragen erfordern einen Authentifizierungsschritt, bei dem sich der Benutzer mit seinem Google-Konto anmeldet. Nach dem Anmelden wird der Benutzer gefragt, ob er bereit ist, die Berechtigungen zu erteilen, die von Ihrer Anwendung angefordert werden. Dieser Prozess wird als Benutzerzustimmung bezeichnet.

Wenn der Benutzer die Berechtigung erteilt, sendet der Google Authorization Server Ihrer Anwendung ein Zugriffstoken (oder einen Autorisierungscode, den Ihre Anwendung verwenden kann, um ein Zugriffstoken zu erhalten). Wenn der Benutzer die Berechtigung nicht erteilt, gibt der Server einen Fehler zurück.

Hier ist link für oauth playground, die hilft, die Konzepte von Oauth zu verstehen.

Überprüfen Sie auch diese link für Kontakte API.

Verwandte Themen