2

Obtenir une super frustration en essayant de faire fonctionner ça. Fondamentalement, c'est pour un site (x10hosting.com) où je ne peux pas inclure le framework zend gdata, donc j'essaie d'utiliser l'API Google Data avec php cURL pour y accéder. Le plus que je suis en mesure de faire est de retourner une liste des feuilles de noms d'utilisateur fournis, en utilisant ce script:Besoin d'aide: Lire ma feuille de calcul Google en la gardant confidentielle

<?php 

// Construct an HTTP POST request 
$clientlogin_url = "https://www.google.com/accounts/ClientLogin"; 
$clientlogin_post = array(
    "accountType" => "HOSTED_OR_GOOGLE", 
    "Email" => "", //username 
    "Passwd" => '', //password 
    "service" => "writely", 
    "source" => "your application name" 
); 

// Initialize the curl object 
$curl = curl_init($clientlogin_url); 

// Set some options (some for SHTTP) 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $clientlogin_post); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

// Execute 
$response = curl_exec($curl); 

// Get the Auth string and save it 
preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches); 
$auth = $matches[1]; 

echo "The auth string is: ".$auth; 
// Include the Auth string in the headers 
// Together with the API version being used 
$headers = array(
    "Authorization: GoogleLogin auth=".$auth, 
    "GData-Version: 3.0", 
); 

// Make the request 
$key = ; 
curl_setopt($curl, CURLOPT_URL, "https://spreadsheets1.google.com/ccc?key=$key"); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($curl, CURLOPT_POST, false); 

$response = curl_exec($curl); 
curl_close($curl); 
var_dump($response); 
// Parse the response 
$response = simplexml_load_string($response); 

// Output data 
foreach($response->entry as $file) 
{ 
    echo "File: " . $file->title . "<br />"; 
    echo "Type: " . $file->content["type"] . "<br />"; 
    echo "Author: " . $file->author->name . "<br /><br />"; 
} 
?> 

Mais je ne peux pas trouver un moyen de l'utiliser pour accéder à une feuille de calcul spécifique. S'il vous plaît, aidez, cela me rend fou.

EDIT: Suivant les conseils de DASPRiD me donne ce ERROR->

Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /home/c3webdev/public_html/library/Zend/Loader.php on line 266

Warning: require_once(Zend/Loader/Autoloader.php) [function.require-once]: failed to open stream: No such file or directory in /home/c3webdev/public_html/library/Zend/Loader.php on line 267

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader/Autoloader.php' (include_path='/home/c3webdev/public_html/library:.:/usr/lib/php:/usr/local/lib/php') in /home/c3webdev/public_html/library/Zend/Loader.php on line 267

+0

et la feuille de calcul doit être définie sur privé afin que les personnes au hasard ne puissent pas le voir. Seulement les gens à travers ce script – JoeCortopassi

+0

Je vais mettre une prime dès qu'il me le permet. Sérieusement besoin de cela – JoeCortopassi

Répondre

2

Une requête à l'URL suivante devrait vous énumérer toutes les feuilles d'une feuille de calcul spécifique:

http://spreadsheets.google.com/feeds/worksheets/**spreadsheetKey**/private/full 

Pour installer et utilisez Zend_Gdata, procédez comme suit:

Téléchargez le dernier paquet (http://framework.zend.com/releases/ZendGdata-1.10.7/ZendGdata-1.10.7.tar.gz) du Zend F site web de ramework. Maintenant, supposons que la structure des administrateurs suivants:

  • index.php (fichier principal)
  • /bibliothèque/Zend (extrait du dossier de la bibliothèque/Zend ici)

maintenant dans l'index .php, procédez comme suit:

set_include_path(
    dirname(__FILE__) . '/library' 
    . PATH_SEPARATOR . get_include_path() 
); 

require_once 'Zend/Loader.php'; 

Zend_Loader::registerAutoload(); 

maintenant, vous pouvez simplement suivre le manuel (http://framework.zend.com/manual/en/zend.gdata.spreadsheets.html). Intéressant pour vous peut être les rubriques "Obtenir une liste de feuilles de calcul" pour créer l'instance de service et "Obtenir une liste de feuilles de calcul" pour récupérer toutes les feuilles de calcul d'une feuille de calcul spécifique.

Mise à jour:

Il semble que le paquet Zend_Gdata est pas correctement emballé. Je vais noter que pour obtenir le forfait corrigé. En attendant, je vous suggère de télécharger le package Zend Framework complet. Pour utiliser le chargeur automatique de 1,8 correctement, procédez comme suit à la place:

require_once 'Zend/Loader/Autoloader.php'; 

Zend_Loader_Autoloader::getInstance(); 
+0

Essayé cela, il me donne l'erreur "jeton invalide" – JoeCortopassi

+1

Hm, cela ne semble pas être un problème avec l'URL. J'ai effectivement extrait l'URL générée par Zend_Gdata. En passant, puis-je vous demander pourquoi vous ne pouvez pas télécharger le package Zend_Gdata et le télécharger sur votre serveur? Il est probablement plus facile de résoudre ce problème et de vous donner une implémentation PHP complète. – DASPRiD

+0

serveur partagé. Impossible d'ajouter la bibliothèque et de modifier le fichier php.ini. Si vous connaissez un moyen de l'inclure à travers require_once() comme je le ferais pour toute autre page PHP, je suis ouvert à cette suggestion. Mais le Zend Gdata devrait aller dans le dossier public html – JoeCortopassi

0

Une fois que vous obtenez la liste des feuilles de travail fournies pour cet utilisateur, vous pouvez analyser jusqu'à obtenir les données (est ce que vous voulez juste les données de feuille de calcul?)

Comme mentionné ci-dessus est ce que vous obtenez les feuilles de calcul disponibles

http://spreadsheets.google.com/feeds/worksheets/<spreadsheet-key>/private/full 

ensuite, à partir de là, vous pouvez obtenir l'URL à une feuille de calcul spécifique, puis à partir de là, vous pouvez obtenir les données de cette

Liste renvoie les données avec les rubriques appropriées

https://spreadsheets.google.com/feeds/list/<spreadsheet-key>/<worksheet-id>/private/basic 

cellules, il revient avec des cellules définies (A1, C23, etc.)

https://spreadsheets.google.com/feeds/cells/0<spreadsheet-key>/<worksheet-id>/private/basic 

Voici plus d'informations sur la référence google spreadsheets api

0

Pour une solution solution vraiment facile sans Zend et sans API Google cela peut aussi aider.

Vous pouvez publier votre feuille de calcul Google comme csv sur le web (avec une URL privée) et l'accès simplement par fopen/fgetcsv:

https://stackoverflow.com/a/18106727/1300348

S'il vous plaît être conscient qu'il n'y a pas d'authentification .. Donc, celui qui a votre URL a vos données, par conséquent, cela pourrait ne pas être la bonne solution pour les fichiers où il y a des mots de passe inclus. Mais peut-être que cela aide quelqu'un avec un problème similaire.

Questions connexes