web-dev-qa-db-ja.com

公開されているGoogleカレンダーからJSONを取得する

public GoogleカレンダーのイベントでJSONを取得するにはどうすればよいですか?私はIDを持っていますが、それへのアクセスはありません。イベントを変更したり、ログインしたりしたくありません。

JSON/PHPデータベースと同期するためにMySqlを取得したいのですが。

試しましたhttps://www.googleapis.com/calendar/v3/calendars/{calendarId}

しかしログインエラーが発生しました:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}
20
Rikard

カレンダーを共有する必要がありますpublicly!これは、共有している場合のみ機能しますfree/busyステータス:

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/basic?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

完全な詳細-これは、カレンダーが完全に公開されている場合にのみ機能します

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/full?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

または単にfree-busy

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/free-busy?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

パラメータorderbysortorderおよび futureeventsはオプションですが、後で役立つ場合があります:)

8
Laky

2014年11月17日以降、Google Calendar APIのv1とv2は無効になりました。

Google Calendar API V には、そのほとんどすべての操作にoauth認証が必要です。私の知る限り、これにはユーザーの操作も必要です。

ただし、公開カレンダーの場合、JSONデータを取得するために単一のリンクを使用することは引き続き可能です(これは現在Googleによって文書化されていません-明日消える可能性のある彼らの側またはプライベートAPIの見落としかどうかはわかりません)。

  1. アプリケーションを Google Developers Console に登録します
  2. Google Developers ConsoleでGoogle Calendar APIをアクティブにします。
  3. Credentialsで、新しいパブリックAPIアクセスキーを作成します(referrersテストでは空白)
  4. JSON URLは次のようになります

    https://www.googleapis.com/calendar/v3/calendars/ {calendarid}/events?key = {あなたの公開APIキー}

(中かっこ{}は実際のURLに表示されません)。

APIドキュメントには、含めることができる追加のパラメーターが記載されています(ただし、ほとんどのJSONリクエストと同様に、パラメーター&callback =を含めて、JSONP応答を作成できます) JavaScriptの場合)。

51
Tirno