2

これを機能させようとすると、非常にイライラします。基本的に、これはzend gdataフレームワークを含めることができないサイト(x10hosting.com)用であるため、phpcURLでGoogleDataAPIを使用してアクセスしようとしています。私ができることのほとんどは、次のスクリプトを使用して、提供されたユーザー名ワークシートのリストを返すことです。

<?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 />";
}
?>

しかし、これを使用して1つの特定のワークシートにアクセスする方法がわかりません。助けてください、これは私を狂わせています。

編集: DASPRiDのアドバイスに従うと、このエラーが発生します->

注意:Zend_Loader :: Zend_Loader :: registerAutoloadは1.8.0で非推奨になり、2.0.0で削除されます。代わりに、266行目の/home/c3webdev/public_html/library/Zend/Loader.phpでZend_Loader_Autoloaderを使用します

警告:require_once(Zend / Loader / Autoloader.php)[function.require-once]:ストリームを開くことができませんでした:/home/c3webdev/public_html/library/Zend/Loader.phpの267行目にそのようなファイルまたはディレクトリはありません

致命的なエラー:require_once()[function.require]:必要な'Zend / Loader / Autoloader.php'(include_path ='/ home / c3webdev / public_html / library:。:/ usr / lib / php:/ usr / local /home/c3webdev/public_html/library/Zend/Loader.phpの267行目の/lib/ php')

4

3 に答える 3

2

次のURLにクエリを実行すると、特定のスプレッドシートのすべてのワークシートが一覧表示されます。

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

Zend_Gdataをインストールして使用するには、次の手順を実行します。

Zend Framework Webサイトから最後のパッケージ(http://framework.zend.com/releases/ZendGdata-1.10.7/ZendGdata-1.10.7.ta​​r.gz )をダウンロードします。ここで、次のディレクター構造を想定します。

  • /index.php(メインファイル)
  • / library / Zend(ここでlibrary / Zendフォルダーを抽出します)

index.phpで、次の手順を実行します。

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

require_once 'Zend/Loader.php';

Zend_Loader::registerAutoload();

これで、マニュアル( http://framework.zend.com/manual/en/zend.gdata.spreadsheets.html )に従うだけで済みます。興味深いのは、サービスインスタンスを作成するための「スプレッドシートのリストを取得する」トピックと、特定のスプレッドシートのすべてのワークシートを取得するための「ワークシートのリストを取得する」というトピックです。

アップデート:

Zend_Gdataパッケージが適切にパッケージ化されていないようです。パッケージを修正することに注意します。それまでの間、完全なZendFrameworkパッケージをダウンロードすることをお勧めします。1.8でオートローダーを正しく使用するには、代わりに次の手順を実行します。

require_once 'Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance();
于 2010-08-23T21:14:27.090 に答える
0

そのユーザーに提供されたワークシートのリストを取得したら、解析してデータを取得できます(それが正しいですか?ワークシートデータですか?)

上記のように、これはスプレッドシートを利用できるようにする方法です

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

次に、そこから特定のスプレッドシートへのURLを取得し、そこからデータを取得できます

リストは適切な見出しでデータを返します

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

セルは、定義されたセル(A1、C23など)でそれを返します

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

ここにグーグルスプレッドシートAPIリファレンスの詳細があります

于 2010-08-30T13:43:17.013 に答える
0

ZendやGoogleAPIを使用しない非常に簡単な代替ソリューションの場合、これも役立つ可能性があります。

Googleスプレッドシートをウェブ上でcsvとして(プライベートURLを使用して)公開し、fopen/fgetcsvでアクセスすることができます。

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

認証がないことに注意してください...したがって、あなたのURLを持っている人は誰でもあなたのデータを持っているので、これはパスワードが含まれているファイルには適切な解決策ではないかもしれません。しかし、おそらくそれは同様の問題を抱えている人を助けます。

于 2013-08-07T15:03:11.613 に答える