Google api 401尝试创建共享谷歌应用联系人时发生未经授权的错误
我正在尝试使用GData.NETAPI创建一个新联系人。 我有一个使用较新的Google.api的AccessToken 这个acces令牌可以正常工作以获取、更新和删除联系人,但如果我尝试创建联系人,我会收到401未经授权的响应 这是我用于添加联系人的代码:Google api 401尝试创建共享谷歌应用联系人时发生未经授权的错误,google-api,gdata,google-contacts-api,google-oauth,Google Api,Gdata,Google Contacts Api,Google Oauth,我正在尝试使用GData.NETAPI创建一个新联系人。 我有一个使用较新的Google.api的AccessToken 这个acces令牌可以正常工作以获取、更新和删除联系人,但如果我尝试创建联系人,我会收到401未经授权的响应 这是我用于添加联系人的代码: if (string.IsNullOrEmpty(FullName)) { FullName = string.Format("{0} {1}", FirstName, LastNa
if (string.IsNullOrEmpty(FullName))
{
FullName = string.Format("{0} {1}", FirstName, LastName);
if (string.IsNullOrEmpty(FullName))
{
ThrowTerminatingError(new ErrorRecord(
new ArgumentException("Please provide a name for the contact"),
null, ErrorCategory.InvalidArgument, null));
}
}
Contact = new Contact
{
Name = new Name
{
GivenName = FirstName,
FamilyName = LastName,
FullName = FullName
},
Content = "Notes",
};
foreach (var m in Emails)
{
Contact.Emails.Add(new EMail(m));
}
RequestSettings settings = new RequestSettings(applicationName, AuthentParameters);
ContactsRequest cr = new ContactsRequest(settings);
var feedUri = new Uri(string.Format("{0}{1}/full/", Scope, Domain));
cr.Insert(feedUri, Contact));
以下atom提要使用POST方法发送到域)/full/:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005">
<gd:name>
<gd:givenName>Guillaume</gd:givenName>
<gd:familyName>Davion</gd:familyName>
<gd:fullName>Guillaume Davion</gd:fullName>
</gd:name>
<gd:email address="gudavion@test.info" />
<category term="http://schemas.google.com/contact/2008#contact" scheme="http://schemas.google.com/g/2005#kind" />
<content type="text">Notes</content>
</entry>
纪尧姆
达维翁
纪尧姆·戴维恩
笔记
标题为:
- 内容类型:应用程序/atom+xml;字符集=UTF-8
- 授权:承载ya29(访问令牌)
- GData版本:3.0
感谢所有能帮助我的人。我通过两件事使它工作起来: 首先,更改构建提要uri的方式:
var feedUri = new Uri(ContactsQuery.CreateContactsUri(Domain));
第二,在电子邮件中添加标签:
Contact.Emails.Add(new EMail(m) { Label = "Default" });
这样,添加过程就可以顺利进行。您在进行身份验证时发送了什么作用域?