2009-02-27 8 views
0

これは簡単だが、以前はZend_Gdataを使用していなかったので、いくつかのガイダンスが必要です。私の前提のどれかが間違っている場合は、私を修正してください。Zend Framework:Zend_Gdata_ClientLoginを使い始める

私は自分のドメインでGoogle Appsを使用していますので、まずはドメインのすべてのユーザーをリストするような簡単な操作をしたいと思います。

Zend_Gdata_Gappsで作業しているので、私が理解している通り、Zend_Gdata_AuthSubの代わりにZend_Gdata_ClientLoginを使用する必要があります。これは私がこれまで持っているものです:

$client = Zend_Gdata_ClientLogin::getHttpClient('[email protected]', 'password'); 
$gdata = new Zend_Gdata_Gapps($client, 'mydomain.com'); 
$users = $gdata->retrieveAllUsers(); 

しかし、retrieveAllUsers()このメッセージで例外がスローされます。

Expected response code 200, got 401 <HTML> <HEAD> <TITLE>Token invalid</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Token invalid</H1> <H2>Error 401</H2> </BODY> </HTML> 

それはどういう意味?私は間違って何をしていますか?問題があるかどうかわかりませんが、このPHPスクリプトはローカルで実行していますが、Google Appsはリモートサーバーで実行されています。私はZend Frameworkバージョン1.7.5を使用しています。

更新:誰かが不思議に思うなら、私がこれをやっている間にいくつかの問題がありました。 Zend_Gdataを使用するには、Google Appsの管理セクションで「プロビジョニングAPI」を有効にしていることがわかりました。私はGoogle Appsの標準(無料)バージョンしか持っていないことを知りました。これは、Google Appsのプレミアム(有料)バージョンを使用していない限り、Provisioning APIが利用できないことを意味します。

答えて

1

あなたはサービスパラメータが欠落している、Google Appsのそれは私がGoogleスプレッドシートにアクセスする方法を学習してきた'apps'

$client = Zend_Gdata_ClientLogin::getHttpClient('[email protected]', 'password','apps'); 
+0

私はこれについて混乱しています。ドキュメント(間違っている可能性があります)はオプションです: "オプションの3番目のパラメータは、Google Dataサービスの名前です...デフォルトは" xapi "で、Google Dataサーバーは汎用サービス名として認識されます。 – Andrew

+0

正確に。あなたは "汎用サービス"にアクセスしようとしていない、あなたはAppsにアクセスしようとしている。 – vartec

+0

よろしく!はい。私はこれを試してみる。ありがとう! – Andrew

0

だと私は$サービスを渡します。

$service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME; 
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);