Как исправить ошибку состояния 400 с помощью Google apis (People.Connections.List) с помощью ядра.net?

Я пытаюсь получить свои контакты из API контактов Google, и каждый раз при попытке использовать People.Connections.List я получаю 400 ошибок кода состояния.

Вот мой код:

static void Main(string[] args)
{
    PeopleService service = AuthenticateUser();
    // Works:
    Person connectionsResponse = service.People.Get("people/me?personFields=names,phoneNumbers").Execute();
    // Doesn't Work:
    ListConnectionsResponse connectionsResponses = service.People.Connections.List("people/me?personFields=names,addresses").Execute();

}

private static PeopleService AuthenticateUser()
{
    UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        new ClientSecrets
                        {
                            ClientId = CLIENT_ID,
                            ClientSecret = CLIENT_SECRET
                        },
                    new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly", "https://www.googleapis.com/auth/contacts", "https://people.googleapis.com/v1", PeopleService.Scope.Contacts }, // scopes
                        "me",
                        CancellationToken.None).Result;

    PeopleService ps = new PeopleService(new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = PEOPLE_API_NAME,
        ApiKey = PEOPLE_API_KEY
    });
    return ps;
}

У меня проблема с этой строкой:

ListConnectionsResponse connectionsResponses = service.People.Connections.List("people/me?personFields=names,addresses").Execute();

Я следовал инструкциям на https://developers.google.com/people/api/rest/v1/people.connections/list и пробовал следующие запросы:

people/me?personFields=names  
/people/me?personFields=names  
people/me/connections?personFields=names

Я также попытался изменить значения "personFields" и получил ту же ошибку.

Я использую консольное приложение.NetCore 2.1 со следующими пакетами:

<PackageReference Include="Google.Apis" Version="1.38.0" />
<PackageReference Include="Google.Apis.People.v1" Version="1.25.0.830" />

При использовании Google "Попробуйте этот API" по ссылке выше, это работает, и я получаю следующий код curl:

curl \
'https://people.googleapis.com/v1/people/me/connections?personFields=names' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed

Как вы можете видеть, я попытался использовать ту же ссылку в своем коде, и она вернула ту же ошибку.

Вот полное сообщение об ошибке:

Unhandled Exception: Google.GoogleApiException: Google.Apis.Requests.RequestError
Invalid personFields mask path: "addresses/connections". Valid paths are documented at https://developers.google.com/people/api/rest/v1/people/get. [400]
Errors [
        Message[Invalid personFields mask path: "addresses/connections". Valid paths are documented at https://developers.google.com/people/api/rest/v1/people/get.] Location[ - ] Reason[badRequest] Domain[global]
]
   at Google.Apis.Requests.ClientServiceRequest`1.ParseResponse(HttpResponseMessage response) in Path:line 192
   at Google.Apis.Requests.ClientServiceRequest`1.Execute() in C:\Apiary\2019-01-31.11-23-48\Src\Support\Gooenter code heregle.Apis\Requests\ClientServiceRequest.cs:line 116
   at PeopleAPI.Auth.Main(String[] args) in Path:line 31

Надеюсь, вы сможете мне помочь.

Спасибо:)

0 ответов

Другие вопросы по тегам