3

わかりました。最初に、この質問に回答があった場合は、単に私を正しい方向に向けてください。私が遭遇しているものに対する答えを見つけることができずに、私は検索して検索しました。

シナリオは次のとおりです。次のことを実行できる必要があるアプリケーションがあります。

  1. 指定したカレンダーのイベントのリストを取得する
  2. イベントの開始時間と終了時間を決定する
  3. 開始時刻が正しくない場合 (つまり、イベントが 6:00 ではなく 6:01 に作成された場合)、開始時刻を調整する必要があります。
  4. POST リクエストを送信して開始時刻と終了時刻を更新する

これまでのところ、問題なく 1 ~ 3 を完了しました。問題は 4 番です。イベントのリストがあり、時刻を変更して投稿リクエストを作成しましたが、常に「見つかりません」というメッセージが表示されます。と答えて、私は完全に混乱しています。

イベントのリストを要求したときに返される応答の一部を次に示します。

[1] => stdClass Object
    (
        [kind] => calendar#event
        [etag] => "ZrhdJMCgpoUK_a5fT7XOC6xn46g/Z2NhbDAwMDAxMzU4NjE3MzM1NDE1MDAw"
        [id] => dbqcfrdvkm40tnuvbk46mv1ktg
        [status] => confirmed
        [htmlLink] => ########################
        [created] => 2013-01-19T17:42:15.000Z
        [updated] => 2013-01-19T17:42:15.415Z
        [summary] => #########################
        [description] => ########################
        [location] => Traverse City, MI
        [creator] => stdClass Object
            (
                [email] => ######################
            )

        [organizer] => stdClass Object
            (
                [email] => ##################################
                [displayName] => Kent County
                [self] => 1
            )

        [start] => stdClass Object
            (
                [dateTime] => 2013-01-19T13:01:00-05:00
                [timeZone] => America/New_York
            )

        [end] => stdClass Object
            (
                [dateTime] => 2013-01-19T16:01:00-05:00
                [timeZone] => America/New_York
            )

        [recurrence] => Array
            (
                [0] => RRULE:FREQ=WEEKLY;UNTIL=20130331T000000Z
            )

        [iCalUID] => ###############################
        [sequence] => 0
        [attendees] => Array
            (
                [0] => stdClass Object
                    (
                        [email] => ####################
                        [displayName] => ##############
                        [responseStatus] => needsAction
                    )

            )

        [reminders] => stdClass Object
            (
                [useDefault] => 1
            )

    )

ご覧のとおり、問題なくイベント ID を取得しています。次に、カレンダー ID と受信したイベント ID を使用して投稿リクエストを作成します。

https://www.googleapis.com/calendar/v3/calendars/{CALENDAR ID}/events/dbqcfrdvkm40tnuvbk46mv1ktg?key={API KEY}

これが私が行き詰まる場所です。リクエストで送信されているヘッダーは問題ないように見えますが、返される唯一の応答は「見つかりません」です

Array
(
[url] => https://www.googleapis.com/calendar/v3/calendars/{CALENDAR ID}/events/dbqcfrdvkm40tnuvbk46mv1ktg?key={API KEY}
[content_type] => text/html; charset=UTF-8
[http_code] => 404
[header_size] => 360
[request_size] => 485
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.364634
[namelookup_time] => 3.0E-5
[connect_time] => 0.08616
[pretransfer_time] => 1.7E-5
[size_upload] => 105
[size_download] => 9
[speed_download] => 24
[speed_upload] => 287
[download_content_length] => -1
[upload_content_length] => 105
[starttransfer_time] => 0.3646
[redirect_time] => 0
[certinfo] => Array
    (
    )

[redirect_url] => 
[request_header] => POST /calendar/v3/calendars/{CALENDAR ID}/events/dbqcfrdvkm40tnuvbk46mv1ktg?key={API KEY} HTTP/1.1
Host: www.googleapis.com
Accept: */*
Content-Type: application/json
Authorization: Bearer {SECURITY TOKEN}, X-JavascriptUser-Agent: HiddenOnes
Content-Length: 105
)

Google デベロッパー センターにアクセスして Events:update テスト エリアを使用すると、次の URL が生成されます。

https://www.googleapis.com/calendar/v3/calendars/{CALENDAR ID}/events/dbqcfrdvkm40tnuvbk46mv1ktg?key={YOUR_API_KEY}

そして、そこからテストすると問題なく動作するので、今は完全に困惑しているので、有効で有用なアイデアは大歓迎です.

4

1 に答える 1

2

あなたの {CALENDAR ID} は無効です。その価値はどこから得ていますか?

ユーザーのプライマリ カレンダーにデフォルト設定される「primary」のカレンダー ID を使用することもできます。

また、イベントを更新するときは、PUTHTTP 動詞https://developers.google.com/google-apps/calendar/v3/reference/events/updateを使用する必要があります

于 2013-02-12T01:02:13.483 に答える