1

次のような簡単なページを作成して、JQuery / REST /GoogleAPIを自分で学ぼうとしています。

  1. Googleで認証する
  2. トークンを検証します
  3. ユーザーのGoogleカレンダーのリストを取得します
  4. 選択したカレンダーのイベントを一覧表示します
  5. 選択したカレンダーのイベントを追加します

私は#1から#4が機能していて(間違いなく醜い方法ですが)、#5でつまずきました。JQueryのajax呼び出しは次のとおりです。

var url = 'https://www.googleapis.com/calendar/v3/calendars/[MY_CALENDAR_ID]/events?sendNotifications=false&access_token=[GOOGLE_API_TOKEN]';
            var data = { end: { dateTime: "2012-07-22T11:30:00-07:00" }
                            , start: { dateTime: "2012-07-22T11:00:00-07:00" }
                            , summary: "New Calendar Event from API"
                        };

            var ajax = $.ajax({ url: url
                                , data: data
                                , type: 'POST'
                        }).done(addEventDone)
                          .fail(function (jqHXR, textStatus) {
                              console.log("addEvent(): ajax failed = " + jqHXR.responseText);
                              console.log(jqHXR);
                          });

結果はグローバルparseErrorです:「このAPIはフォームエンコードされた入力の解析をサポートしていません。」最初の4つのステップはすべてGETajax呼び出しを使用しているため、それが私をつまずかせているのかどうかはわかりません。

問題のAPIは次のとおりです:https ://developers.google.com/google-apps/calendar/v3/reference/events/insert

私は物事を長く困難な方法で行っている可能性があると思います。私の新しいアプローチは、手動のJQueryとRESTで直接実行するのではなく、javascriptAPIを使用してこれに取り組むことです。これは私が今後試みているアプローチですhttp://code.google.com/p/google-api-javascript-client/wiki/Samples#Calendar_APIですが、もしあればこれを学習の機会として利用したいと思います。簡単なことですが、上記のコードを台無しにしています。

ヘルプ、洞察、ポインタなどをありがとう。javascriptAPIを使用して進歩が見られたら、更新を投稿します。

4

2 に答える 2

5

興味深いことに、私はここで同様の質問に答えました。GoogleのJSクライアントライブラリを使用する直感は良いものです。OAuth 2を処理します。これは、カレンダーデータを操作する場合の要件です。

私の他の回答には、私が作成したブログ投稿へのリンク(クライアントの構成とユーザー認証を示す)と、カレンダーイベントの挿入例の両方があります。

于 2012-07-24T00:33:34.613 に答える
0

データとメソッドに対してJSON.stringifyを実行するには、contentType: "application / json"を設定する必要があります:'POST'

var ajax = $.ajax({
url: url,
contentType: "application/json",
data: JSON.stringify(data),
method : 'POST',
});
于 2016-07-19T06:39:19.083 に答える