我在Google通讯录中的授权存在问题。 直到六月我的控制台C#应用程序工作。
我已经采取措施获得联系人https://developers.google.com/google-apps/contacts/v3/?hl=en。 我无法得到联系人;我只能访问serviceAccountEmail(xxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com)。
我有2个联系人存储在那里,我只能访问它们。 我希望能够访问我的7000个Gmail联系人。 在C#中有没有这方面的教程? 我发现了分析和日历,但不是联系人。
以下是我的代码:
const string serviceAccountEmail = "xxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com";
var certificate = new X509Certificate2("grdom-all-xxxxxxxxxxxx.p12", "notasecret",
X509KeyStorageFlags.Exportable);
ServiceAccountCredential.Initializer serviceAccountCredentialInitializer =
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { "https://www.google.com/m8/feeds/" },
}.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer);
if (!credential.RequestAccessTokenAsync(CancellationToken.None).Result)
throw new InvalidOperationException("Access token request failed.");
var oauthParameters = new OAuth2Parameters()
{
AccessToken = credential.Token.AccessToken,
AccessType = "offline",
ApprovalPrompt = "force",
};
var settings = new RequestSettings("grdom-all", oauthParameters)
{
AutoPaging = true,
UseSSL = true,
};
ContactsRequest cr = new ContactsRequest(settings);
var query = new ContactsQuery(ContactsQuery.CreateContactsUri("default"));
Feed<Contact> f = cr.GetContacts();
foreach (Contact entry in f.Entries)
{
//do something
};