電子書籍の厳選無料作品が豊富!

現在、初心者ですがwebプログラムの勉強中です。
Google Calendar APIをやろうと思っているのですが、
PHPのライブラリーをインストールして一緒にインストールしたsimple.phpを動かそうとすると失敗します。

simple.phpにClientId, ClientSecret, RedirectUri, DeveloperKeyを入力してindex.phpとして保存しています。
そこにアクセスするとアクセス認証画面になり、許可をするとredirectでそのindex.phpに帰ってくるようになっているのですが、帰ってきてから
$calList = $cal->calendarList->listCalendarList();
の行で止まります。
アクセスを認証した状態でClientId, ClientSecret, RedirectUri, DeveloperKeyの行をコメントアウトしてブラウザをリロードするとうまくいきます。
全くもってよく分かりません。

何か心当たりのある方、よろしくお願いします。

A 回答 (2件)

エラーがちゃんと出てましたね。

あと、エラー内容を貼って頂いたのはいいのですが、API Keyはさすがに隠しましょう…。
これは固有の情報なのでちょっと外に出るのは(あまり)よろしくないです。

で、Google Calendar APIのリファレンス
https://developers.google.com/google-apps/calend …
こちらを見ると、
・oauthで認証している必要がある
・パラメタとして指定できるのは以下の4つ
 1)maxResults
 2)minAccessRole
 3)pageToken
 4)showHidden
と書いていますね。なので余計なパラメタが付与されたことによってAPI側でエラーを出しているのではないかと思われます。

今のところ英語しかないのでちょっとめんどくさいですが、自分がやりたいことを実現するためのAPIはどのような仕様かを確認するために、必ずAPIリファレンスを参照して下さい。
サンプルプログラムを使われているようですが、OAuthとAPIの仕様さえ分かれば自分でいちから作ることも可能ですので。
    • good
    • 0
この回答へのお礼

API key含まれてますねorz
見落としていました。気をつけます。

初心者の質問にお付き合いいただきありがとうございました。
おかげで先に進むことができました。

お礼日時:2013/05/03 12:51

行で止まるというのはエラーが出るということなのでしょうか?


エラーが出るのであればエラーの内容を提示しない限り第三者には全く分かりません。

とりあえず認証ができているのであれば、$cal変数を出力してみてはどうですか?

var_dump($cal);
die();

これで$cal変数の中身がブラウザに出力されますので、メンバ変数や値がちゃんと入っているかどうかなどをまず調べましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
エラーは以下のようになっていました。
Fatal error: Uncaught exception 'Google_ServiceException' with message 'Error calling GET https://www.googleapis.com/calendar/v3/users/me/ … (403) Access Not Configured' in /var/www/html/temp-space/google_calendar/src/io/Google_REST.php:66 Stack trace: #0 /var/www/html/temp-space/google_calendar/src/io/Google_REST.php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 /var/www/html/temp-space/google_calendar/src/service/Google_ServiceResource.php(186): Google_REST::execute(Object(Google_HttpRequest)) #2 /var/www/html/temp-space/google_calendar/src/contrib/Google_CalendarService.php(154): Google_ServiceResource->__call('list', Array) #3 /var/www/html/temp-space/google_calendar/index.php(35): Google_CalendarListServiceResource->listCalendarList() #4 {main} thrown in /var/www/html/temp-space/google_calendar/src/io/Google_REST.php on line 66

PHPのエラー出力をはじめてやったのでよく分かりません。勉強不足で申し訳ないです。

あと、どうやらOAuthでユーザー認証するようなAPIについてはdeveloperKey(API key)は不要のようです。
DeveloperKeyを入力する行だけをコメントアウトしたらうまくいきました。
DeveloperKeyは無視してくれるとGoogleのサイトには書いてあるのですが。。。

とにかく、質問で書いた問題は解決出来ました。
なぜこれでうまくいくのかを理解することが重要かと思いますので、もし何かアドバイスがあればお願いします。
しばらくしてから質問受け付けを締め切りたいと思います。

お礼日時:2013/05/02 18:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!