请求的身份验证范围不足。 [403]。 Google 人 API

Request had insufficient authentication scopes. [403]. Google People API

我有创建联系人并发送请求的方法。调用 Execute() 方法后,出现异常。如何正确发送 Google 联系人的更改?

private readonly PeopleServiceService _peopleService;
private readonly string[] _scopes = { PeopleServiceService.Scope.Contacts };

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                secrets,
                _scopes,
                userName,
                CancellationToken.None).Result;

_peopleService = new PeopleServiceService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "ApplicationName",
            });

var contactToCreate = new Person
            {
                Names = new List<Name>
                {
                    new Name
                    {
                        DisplayName = "John"
                    }
                },
                PhoneNumbers = new List<PhoneNumber>
                {
                    new PhoneNumber
                    {
                        Value = "+7 777 777 7777"
                    }
                }
            };

var request = new PeopleResource.CreateContactRequest(_peopleService, contactToCreate);
request.Execute(); // Exception here

那个例外: enter image description here

insufficient authentication scopes.

表示您目前没有权限做您想做的事。

Method: people.createContact 需要以下权限范围才能执行。

https://www.googleapis.com/auth/contacts

您似乎正在使用它。所以这里发生了两件事之一。

  1. 您更改了代码中的范围,但未能注销并重新验证脚本以获得新权限。
  2. api 中存在一些错误。我已经对其进行了测试,API 似乎在工作。

仔细检查您的代码,确保您使用的是该范围,然后再次尝试登录。