2


1

ヘルプが必要:Googleスプレッドシートを読んで、非公開にする

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

 "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 . "
";
    echo "Type: " . $file->content["type"] . "
";
    echo "Author: " . $file->author->name . "

";
}
?>

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

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

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

警告:require_once(Zend / Loader / Autoloader.php) [function.require-once]: failed to open stream: No such file or /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 / lib / php ')/home/c3webdev/public_html/library/Zend/Loader.phpの267行目 _ _

3 Answer


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

require_once 'Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance();


0


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

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

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

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

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

https://spreadsheets.google.com/feeds/list///private/basic

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

https://spreadsheets.google.com/feeds/cells/0//private/basic

googleスプレッドシートapiリファレンスの詳細をご覧ください。


0


  • ZendおよびGoogle API *を使用しない非常に簡単な代替ソリューションの場合、これも役立ちます。

GoogleスプレッドシートをcsvとしてWeb上で公開し(プライベートURLを使用)、* fopen / fgetcsv *で簡単にアクセスできます。

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