0

API Googleを使用してアプリケーションを開発しています。この過程で、私たちはいくつかの困難に直面しました。

このページ「code.google.com/p/google-api-php-client/」にある php-sdk を使用しました Google Calendar サービスを使用しました。ここにあるドキュメントに従いました: 「developers.google.com/google-apps/calendar/v3/reference/」セクション カレンダーとイベント。

ソース データ: -「code.google.com/apis/console/」にある Google カレンダー サービスへのアクセスが許可されます -必要なユーザー認証が要求されます (ドキュメントに基づく: 「developers.google.com/google-apps/calendar/」 v3/参照/イベント/挿入)"

タスク: イベントをカレンダーに追加します。アクション: Post-Request をhttps://www.googleapis.com/calendar/v3/calendars/ {calendarId}/events?calendarId={calendarId}&alt=json&key={API キー}に送信します

リクエスト本文:

{

"\u0000*\u0000__creatorType":"EventCreator",

"\u0000*\u0000__creatorDataType":"",

"\u0000*\u0000__organizerType":"EventOrganizer",

"\u0000*\u0000__organizerDataType":"",

"\u0000*\u0000__attendeesType":"EventAttendee",

"\u0000*\u0000__attendeesDataType":"array",

"\u0000*\u0000__startType":"EventDateTime",

"\u0000*\u0000__startDataType":"",

"start":{

"date":"",

"timeZone":"Europe\/Moscow",

"dateTime":"2012-0408T12:00:00+04:00"

},

"location":"sdasdwqwqesaddsa",

"\u0000*\u0000__originalStartTimeType":"EventDateTime",

"\u0000*\u0000__originalStartTimeDataType":"",

"\u0000*\u0000__gadgetType":"EventGadget",

"\u0000*\u0000__gadgetDataType":"",

"description":"sadasdzxczxcasdsaweqqwasd",

"\u0000*\u0000__extendedPropertiesType":"EventExtendedProperties",

"\u0000*\u0000__extendedPropertiesDataType":"",

"\u0000*\u0000__endType":"EventDateTime",

"\u0000*\u0000__endDataType":"",

"end":{

"date":"",

"timeZone":"Europe\/Moscow",

"dateTime":"2012-04-08T19:00:00+04:00"

},

"\u0000*\u0000__remindersType":"EventReminders",

"\u0000*\u0000__remindersDataType":"",

"summary":"wqeqwesadasewqe"

}

注: イベントのオブジェクトを形成するために、コードを使用しました (ここの例と同じ developers.google.com/google-apps/calendar/v3/reference/events/insert セクションの例)

Result: API returns an error with code 400 (Bad Request)

API からの回答 (ヘッダー付き)

HTTP/1.1 400 Bad Request Content-Type: application/json; charset=UTF-8 Date: Fri, 06 Apr 2012 05:53:55 GMT Expires: Fri, 06 Apr 2012 05:53:55 GMT Cache-Control: private, max-age=0 X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block Server: GSE Transfer-Encoding: chunked 

{ "error": {

 "errors": [

 { "domain": "global",

 "reason": "badRequest",

 "message": "Bad Request" } 

],

 "code": 400, 

"message": "Bad Request"

 } 

}
4

2 に答える 2

0

このツールで遊んでください。私は同じ問題を抱えています。エクスプローラーでは機能しますが、Rails サーバーでは機能しません。

https://developers.google.com/google-apps/calendar/v3/reference/events/insert#try-it

于 2013-03-24T23:38:06.797 に答える
0

あなたが言及したドキュメント(http://developers.google.com/google-apps/calendar/v3/referenceで)は、Google Calendar APIへのRESTインターフェースを文書化しています。ただし、PHP クライアント ライブラリは動作が異なり、残念ながらほとんど文書化されていません。

Google PHP API クライアント ( https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/calendar/simple.php ) に含まれているサンプルを使用しました。Google の API コンソールで oAuth クライアント ID、シークレットなどを生成する必要があります (これがどのように機能するかは、API クライアントのドキュメントに記載されています)。

カレンダー PHP API に関する他のすべてのドキュメントは (AFAIK)Google_CalendarServiceクラスのコメントにのみ記載されています: https://code.google.com/p/google-api-php-client/source/browse/trunk/src /contrib/Google_CalendarService.php

次のコードを使用して、Google カレンダーに新しいイベントを追加できます。

$event = new Google_Event();

// Event title and location
$event->setSummary('Event title');
$event->setLocation('Some location');

// Start and end time of the event
$start = new Google_EventDateTime();
$start->setDateTime('2013-08-08T14:00:00+02:00');
$event->setStart($start);

$stop = new Google_EventDateTime();
$stop->setDateTime('2013-08-08T16:00:00+02:00');
$event->setEnd($stop);

// Insert event in calendar.
// 'primary' may be replaced with a full @group.calendar.google.com calendar ID.
$createdEvent = $cal->events->insert('primary', $event);
于 2013-08-07T14:35:49.557 に答える