我正在谷歌创建共享联系人,它会创建联系人,但我无法在谷歌联系人的目录中看到联系人。
我找到了答案,发现this可能最接近..但我似乎无法做对......
以下是一些代码:
string s = "https://www.google.com/m8/feeds";
string targetUri = @"https://www.google.com/m8/feeds/contacts/mycompany.com/full";
string serviceAccountEmail = "123456789012-xxxx1x1xx11x1xxxxxxx11xxxx1xxx11@developer.gserviceaccount.com";
string serviceClientId = "123456789012-xxxx1x1xx11x1xxxxxxx11xxxx1xxx11.apps.googleusercontent.com";
X509Certificate2 certificate = new X509Certificate2(@"C:\All\mygcertificate-1xx1xxx1xx11.p12", "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[]
{
"http://www.google.com/m8/feeds/contacts/"
},
User = "my.user@mycompany.com"
}.FromCertificate(certificate));
string AuthenticationToken1 = string.Empty;
if (credential.RequestAccessTokenAsync(CancellationToken.None).Result)
{
AuthenticationToken1 = credential.Token.AccessToken;
}
Service service = new Service(s, serviceClientId);
GAuthSubRequestFactory factory = new GAuthSubRequestFactory(s, serviceClientId);
factory.Token = AuthenticationToken1;
service.RequestFactory = factory;
Contact ct = new Contact();
ct.Name = new Google.GData.Extensions.Name() { GivenName = "Ron", FamilyName = "Swanson", FullName = "Ron Swanson" };
ct.Emails.Add(new Google.GData.Extensions.EMail("Ron.Swanson@someclient.com", @"http://schemas.google.com/g/2005#work") { Primary = true });
ct.Phonenumbers.Add(new Google.GData.Extensions.PhoneNumber("2345555522") { Rel = @"http://schemas.google.com/g/2005#work", Primary = true});
AtomCategory atc = new AtomCategory();
atc.Term = @"http://schemas.google.com/contact/2008#contact";
atc.Scheme = @"http://schemas.google.com/g/2005#kind";
ct.Categories.Add(atc);
var atomentrytoinsert = ct.AtomEntry;
var result = service.Insert(new Uri(targetUri), atomentrytoinsert);
//Stream getresult = service.Query(new Uri(targetUri)); //this read actually gets the records i inserted...
如果我运行最后一个注释掉的行,我可以看到我创建的条目......但是当我去谷歌联系人并点击目录时 - 他们不在那里。我撰写电子邮件时也没有自动完成...我在某个地方错过了一个属性。
我已经将参赛作品保留了24小时(我是在星期五创作的)。
非常感谢任何意见。
答案 0 :(得分:0)
我昨天尝试了sharedcontact API,新的联系人在目录中不可见。
但今天早上自动完成功能已经建议了新的联系方式!为了使它们在目录中可见,我必须打开Admin google Console-> google apps->联系人 - >高级设置并检查"显示域的配置文件是域共享联系人"
它立刻为我工作,我希望能帮到你!