Невозможно получить праздники с помощью Google API - PullRequest
0 голосов
/ 17 февраля 2019

Как часть приложения, над которым я работаю, я хотел бы предоставить список праздников.Я пытаюсь использовать Google API для этого.Прежде чем писать код, я просто хочу посмотреть, как выглядит возвращаемый JSON.

Я создал учетную запись в Google, получил ключ API и настроил использование Календаря Google.API.Я исследовал HTML, необходимый для получения списка праздников, но не могу заставить его работать.Я просмотрел всю документацию по API Календаря и не нашел ничего о получении списка праздников.Вот некоторые из URL-адресов, которые я пробовал, и ответы, которые я получил.Я нашел все эти примеры URL в Интернете (в основном здесь).Я удалил свой ключ API.

https://www.googleapis.com/calendar/v3/calendars/en.uk%40holiday.calendar.google.com/events?key=myKey

{
    "error": {
        "errors": [
        {
            "domain": "global",
            "reason": "notFound",
            "message": "Not Found"
        }
        ],
        "code": 404,
        "message": "Not Found"
    }
}

https://www.googleapis.com/calendar/v3/calendars/en.sa%40holiday@group.v.calendar.google.com/events?key=myKey

{
    "error": {
        "errors": [
        {
            "domain": "global",
            "reason": "notFound",
            "message": "Not Found"
        }
        ],
        "code": 404,
        "message": "Not Found"
    }
}

https://www.googleapis.com/calendar/v3/calendars/en.uk%40holiday.calendar.google.com/events?key=myKey

{
    "error": {
        "errors": [
        {
            "domain": "global",
            "reason": "notFound",
            "message": "Not Found"
        }
        ],
        "code": 404,
        "message": "Not Found"
    }
}

https://www.googleapis.com/calendar/v3/calendars/en.uk@holiday.calendar.google.com/events?key=myKey

{
    "error": {
        "errors": [
        {
            "domain": "global",
            "reason": "notFound",
            "message": "Not Found"
        }
        ],
        "code": 404,
        "message": "Not Found"
    }
}

https://www.googleapis.com/calendar/v3/calendars/en.usa#holiday@group.v.calendar.google.com/events?key=myKey

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

Google видит мои запросы, и все они являются ошибками.

enter image description here

Похоже, URL-адреса, которые я нашел в Интернете, могли бы работать одно время, но, похоже, больше не работают.

Есть ли какое-либо обновление о том, как использовать это?

Обновление: я попробовал информацию в ответе ниже, и теперь я получаю это:

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

Я пытался en.danish#holiday@group.v.calendar.google.com вПопробуйте этот раздел API справочника Events: List API, и я смог получить JSON для дат.Я не понимаю, почему он работает в Try This API, но он не работает с URL.Последний URL, который я пробовал:

https://www.googleapis.com/calendar/v3/calendars/en.danish#holiday@group.v.calendar.google.com/events?key=myKey

1 Ответ

0 голосов
/ 18 февраля 2019

На данный момент в API есть ошибка.Общедоступные apis должны быть доступны с помощью API-ключа, они больше не нужны, вам нужно пройти аутентификацию

? отчет об ошибке здесь

Информация о проверке ошибки

GET https://www.googleapis.com/calendar/v3/calendars/en.danish%23holiday%40group.v.calendar.google.com?key={YOUR_API_KEY}

Ответ:

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

Если вы используете Oauth2 и аутентифицируете себя, вы получаете

{

 "kind": "calendar#calendar",
 "etag": "\"2IG_UfzQLHbZ3_DsNnNPPvIpYxU/iF_yglNpjvUgQba3YfGrk5JFgq4\"",
 "id": "en.danish#holiday@group.v.calendar.google.com",
 "summary": "Holidays in Denmark",
 "timeZone": "Europe/Copenhagen",
 "conferenceProperties": {
  "allowedConferenceSolutionTypes": [
   "eventHangout"
  ]
 }
}
...